aboutsummaryrefslogtreecommitdiffstats
path: root/src/stanza/client/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/stanza/client/mod.rs')
-rw-r--r--src/stanza/client/mod.rs61
1 files changed, 0 insertions, 61 deletions
diff --git a/src/stanza/client/mod.rs b/src/stanza/client/mod.rs
deleted file mode 100644
index 2b063d6..0000000
--- a/src/stanza/client/mod.rs
+++ /dev/null
@@ -1,61 +0,0 @@
-use iq::Iq;
-use message::Message;
-use peanuts::{
- element::{Content, ContentBuilder, FromContent, FromElement, IntoContent, IntoElement},
- DeserializeError,
-};
-use presence::Presence;
-
-use super::stream::{self, Error as StreamError};
-
-pub mod error;
-pub mod iq;
-pub mod message;
-pub mod presence;
-
-pub const XMLNS: &str = "jabber:client";
-
-pub enum Stanza {
- Message(Message),
- Presence(Presence),
- Iq(Iq),
- Error(StreamError),
- OtherContent(Content),
-}
-
-impl FromContent for Stanza {
- fn from_content(content: Content) -> peanuts::element::DeserializeResult<Self> {
- match content {
- Content::Element(element) => Ok(Stanza::from_element(element)?),
- Content::Text(_) => Ok(Stanza::OtherContent(content)),
- Content::PI => Ok(Stanza::OtherContent(content)),
- Content::Comment(_) => Ok(Stanza::OtherContent(content)),
- }
- }
-}
-
-impl FromElement for Stanza {
- fn from_element(element: peanuts::Element) -> peanuts::element::DeserializeResult<Self> {
- match element.identify() {
- (Some(XMLNS), "message") => Ok(Stanza::Message(Message::from_element(element)?)),
- (Some(XMLNS), "presence") => Ok(Stanza::Presence(Presence::from_element(element)?)),
- (Some(XMLNS), "iq") => Ok(Stanza::Iq(Iq::from_element(element)?)),
- (Some(stream::XMLNS), "error") => {
- Ok(Stanza::Error(StreamError::from_element(element)?))
- }
- _ => Err(DeserializeError::UnexpectedElement(element)),
- }
- }
-}
-
-impl IntoContent for Stanza {
- fn builder(&self) -> peanuts::element::ContentBuilder {
- match self {
- Stanza::Message(message) => <Message as IntoContent>::builder(message),
- Stanza::Presence(presence) => <Presence as IntoContent>::builder(presence),
- Stanza::Iq(iq) => <Iq as IntoContent>::builder(iq),
- Stanza::Error(error) => <StreamError as IntoContent>::builder(error),
- Stanza::OtherContent(_content) => ContentBuilder::Comment("other-content".to_string()),
- }
- }
-}