use crate::xep_0300::Hash; use peanuts::{ element::{FromElement, IntoElement}, Element, }; pub const XMLNS: &str = "urn:xmpp:caps"; // TODO: have a vec which guarantees at least one item #[derive(Debug, Clone)] pub struct C(pub Vec); impl FromElement for C { fn from_element(mut element: Element) -> peanuts::element::DeserializeResult { element.check_name("c")?; element.check_namespace(XMLNS)?; Ok(Self(element.pop_children()?)) } } impl IntoElement for C { fn builder(&self) -> peanuts::element::ElementBuilder { Element::builder("c", Some(XMLNS)).push_children(self.0.clone()) } }