blob: c26793fecdff21c656084f0925549e67dd0aaa0f (
plain) (
tree)
|
|
use peanuts::{Element, FromElement, IntoElement};
use crate::xep_0297::Forwarded;
pub const XMLNS: &str = "urn:xmpp:carbons:2";
#[derive(Clone, Debug)]
pub struct Disable;
impl FromElement for Disable {
fn from_element(element: Element) -> peanuts::DeserializeResult<Self> {
element.check_name("disable")?;
element.check_namespace(XMLNS)?;
element.no_more_content()?;
Ok(Self)
}
}
impl IntoElement for Disable {
fn builder(&self) -> peanuts::ElementBuilder {
Element::builder("disable", Some(XMLNS))
}
}
#[derive(Clone, Debug)]
pub struct Enable;
impl FromElement for Enable {
fn from_element(element: Element) -> peanuts::DeserializeResult<Self> {
element.check_name("enable")?;
element.check_namespace(XMLNS)?;
element.no_more_content()?;
Ok(Self)
}
}
impl IntoElement for Enable {
fn builder(&self) -> peanuts::ElementBuilder {
Element::builder("enable", Some(XMLNS))
}
}
#[derive(Clone, Debug)]
pub struct Private;
impl FromElement for Private {
fn from_element(element: Element) -> peanuts::DeserializeResult<Self> {
element.check_name("private")?;
element.check_namespace(XMLNS)?;
element.no_more_content()?;
Ok(Self)
}
}
impl IntoElement for Private {
fn builder(&self) -> peanuts::ElementBuilder {
Element::builder("private", Some(XMLNS))
}
}
#[derive(Clone, Debug)]
pub struct Received {
forwarded: Forwarded,
}
impl FromElement for Received {
fn from_element(mut element: Element) -> peanuts::DeserializeResult<Self> {
element.check_name("received")?;
element.check_namespace(XMLNS)?;
let forwarded = element.pop_child_one()?;
Ok(Self { forwarded })
}
}
impl IntoElement for Received {
fn builder(&self) -> peanuts::ElementBuilder {
Element::builder("received", Some(XMLNS)).push_child(self.forwarded.clone())
}
}
#[derive(Clone, Debug)]
pub struct Sent {
forwarded: Forwarded,
}
impl FromElement for Sent {
fn from_element(mut element: Element) -> peanuts::DeserializeResult<Self> {
element.check_name("sent")?;
element.check_namespace(XMLNS)?;
let forwarded = element.pop_child_one()?;
Ok(Self { forwarded })
}
}
impl IntoElement for Sent {
fn builder(&self) -> peanuts::ElementBuilder {
Element::builder("sent", Some(XMLNS)).push_child(self.forwarded.clone())
}
}
|