diff options
Diffstat (limited to '')
| -rw-r--r-- | stanza/src/xep_0060/event.rs | 18 | ||||
| -rw-r--r-- | stanza/src/xep_0060/pubsub.rs | 18 | 
2 files changed, 36 insertions, 0 deletions
diff --git a/stanza/src/xep_0060/event.rs b/stanza/src/xep_0060/event.rs index 4ef5a6c..1be011d 100644 --- a/stanza/src/xep_0060/event.rs +++ b/stanza/src/xep_0060/event.rs @@ -8,6 +8,8 @@ use peanuts::{  };  use crate::xep_0004::X; +#[cfg(feature = "xep_0084")] +use crate::xep_0084;  #[cfg(feature = "xep_0172")]  use crate::xep_0172::{self, Nick}; @@ -296,6 +298,10 @@ impl IntoElement for Item {  pub enum Content {      #[cfg(feature = "xep_0172")]      Nick(Nick), +    #[cfg(feature = "xep_0084")] +    AvatarData(xep_0084::Data), +    #[cfg(feature = "xep_0084")] +    AvatarMetadata(xep_0084::Metadata),      Unknown(Element),  } @@ -304,6 +310,14 @@ impl FromElement for Content {          match element.identify() {              #[cfg(feature = "xep_0172")]              (Some(xep_0172::XMLNS), "nick") => Ok(Content::Nick(Nick::from_element(element)?)), +            #[cfg(feature = "xep_0084")] +            (Some(xep_0084::data::XMLNS), "data") => { +                Ok(Content::AvatarData(xep_0084::Data::from_element(element)?)) +            } +            #[cfg(feature = "xep_0084")] +            (Some(xep_0084::metadata::XMLNS), "metadata") => Ok(Content::AvatarMetadata( +                xep_0084::Metadata::from_element(element)?, +            )),              _ => Ok(Self::Unknown(element)),          }      } @@ -314,6 +328,10 @@ impl IntoElement for Content {          match self {              #[cfg(feature = "xep_0172")]              Content::Nick(nick) => nick.builder(), +            #[cfg(feature = "xep_0084")] +            Content::AvatarData(data) => data.builder(), +            #[cfg(feature = "xep_0084")] +            Content::AvatarMetadata(metadata) => metadata.builder(),              Content::Unknown(_e) => panic!("unknown content cannot be serialized"),          }      } diff --git a/stanza/src/xep_0060/pubsub.rs b/stanza/src/xep_0060/pubsub.rs index 25fc405..0f698dc 100644 --- a/stanza/src/xep_0060/pubsub.rs +++ b/stanza/src/xep_0060/pubsub.rs @@ -7,6 +7,8 @@ use peanuts::{  };  use crate::xep_0004::X; +#[cfg(feature = "xep_0084")] +use crate::xep_0084;  #[cfg(feature = "xep_0172")]  use crate::xep_0172::{self, Nick}; @@ -377,6 +379,10 @@ impl IntoElement for Item {  pub enum Content {      #[cfg(feature = "xep_0172")]      Nick(Nick), +    #[cfg(feature = "xep_0084")] +    AvatarData(xep_0084::Data), +    #[cfg(feature = "xep_0084")] +    AvatarMetadata(xep_0084::Metadata),      Unknown(Element),  } @@ -385,6 +391,14 @@ impl FromElement for Content {          match element.identify() {              #[cfg(feature = "xep_0172")]              (Some(xep_0172::XMLNS), "nick") => Ok(Content::Nick(Nick::from_element(element)?)), +            #[cfg(feature = "xep_0084")] +            (Some(xep_0084::data::XMLNS), "data") => { +                Ok(Content::AvatarData(xep_0084::Data::from_element(element)?)) +            } +            #[cfg(feature = "xep_0084")] +            (Some(xep_0084::metadata::XMLNS), "metadata") => Ok(Content::AvatarMetadata( +                xep_0084::Metadata::from_element(element)?, +            )),              _ => Ok(Self::Unknown(element)),          }      } @@ -395,6 +409,10 @@ impl IntoElement for Content {          match self {              #[cfg(feature = "xep_0172")]              Content::Nick(nick) => nick.builder(), +            #[cfg(feature = "xep_0084")] +            Content::AvatarData(data) => data.builder(), +            #[cfg(feature = "xep_0084")] +            Content::AvatarMetadata(metadata) => metadata.builder(),              Content::Unknown(_e) => panic!("unknown content cannot be serialized"),          }      }  | 
