use peanuts::{Element, FromElement, IntoElement}; pub const XMLNS: &str = "urn:xmpp:hints"; #[derive(Clone, Copy, Debug)] pub struct NoPermanentStore; impl FromElement for NoPermanentStore { fn from_element(element: Element) -> peanuts::DeserializeResult { element.check_name("no-permanent-store")?; element.check_namespace(XMLNS)?; element.no_more_content()?; Ok(Self) } } impl IntoElement for NoPermanentStore { fn builder(&self) -> peanuts::ElementBuilder { Element::builder("no-permanent-store", Some(XMLNS)) } } #[derive(Clone, Copy, Debug)] pub struct NoStore; impl FromElement for NoStore { fn from_element(element: Element) -> peanuts::DeserializeResult { element.check_name("no-store")?; element.check_namespace(XMLNS)?; element.no_more_content()?; Ok(Self) } } impl IntoElement for NoStore { fn builder(&self) -> peanuts::ElementBuilder { Element::builder("no-store", Some(XMLNS)) } } #[derive(Clone, Copy, Debug)] pub struct NoCopy; impl FromElement for NoCopy { fn from_element(element: Element) -> peanuts::DeserializeResult { element.check_name("no-copy")?; element.check_namespace(XMLNS)?; element.no_more_content()?; Ok(Self) } } impl IntoElement for NoCopy { fn builder(&self) -> peanuts::ElementBuilder { Element::builder("no-copy", Some(XMLNS)) } } #[derive(Clone, Copy, Debug)] pub struct Store; impl FromElement for Store { fn from_element(element: Element) -> peanuts::DeserializeResult { element.check_name("store")?; element.check_namespace(XMLNS)?; element.no_more_content()?; Ok(Self) } } impl IntoElement for Store { fn builder(&self) -> peanuts::ElementBuilder { Element::builder("store", Some(XMLNS)) } }