aboutsummaryrefslogtreecommitdiffstats
path: root/stanza/src/client/message.rs
diff options
context:
space:
mode:
Diffstat (limited to 'stanza/src/client/message.rs')
-rw-r--r--stanza/src/client/message.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/stanza/src/client/message.rs b/stanza/src/client/message.rs
index e521613..d94b82e 100644
--- a/stanza/src/client/message.rs
+++ b/stanza/src/client/message.rs
@@ -8,12 +8,14 @@ use peanuts::{
#[cfg(feature = "xep_0131")]
use crate::xep_0131::Headers;
+#[cfg(feature = "xep_0172")]
+use crate::xep_0172::Nick;
#[cfg(feature = "xep_0203")]
use crate::xep_0203::Delay;
use super::XMLNS;
-#[derive(Debug, Clone)]
+#[derive(Debug, Clone, Default)]
pub struct Message {
pub from: Option<JID>,
pub id: Option<String>,
@@ -29,6 +31,8 @@ pub struct Message {
pub delay: Option<Delay>,
#[cfg(feature = "xep_0131")]
pub headers: Option<Headers>,
+ #[cfg(feature = "xep_0172")]
+ pub nick: Option<Nick>,
}
impl FromElement for Message {
@@ -52,6 +56,9 @@ impl FromElement for Message {
#[cfg(feature = "xep_0131")]
let headers = element.child_opt()?;
+ #[cfg(feature = "xep_0172")]
+ let nick = element.child_opt()?;
+
Ok(Message {
from,
id,
@@ -65,6 +72,8 @@ impl FromElement for Message {
delay,
#[cfg(feature = "xep_0131")]
headers,
+ #[cfg(feature = "xep_0172")]
+ nick,
})
}
}
@@ -93,6 +102,9 @@ impl IntoElement for Message {
#[cfg(feature = "xep_0131")]
let builder = builder.push_child_opt(self.headers.clone());
+ #[cfg(feature = "xep_0172")]
+ let builder = builder.push_child_opt(self.nick.clone());
+
builder
}
}
@@ -137,6 +149,7 @@ impl ToString for MessageType {
#[derive(Clone, Debug)]
pub struct Body {
pub lang: Option<String>,
+ // TODO: string stuff
pub body: Option<String>,
}