aboutsummaryrefslogtreecommitdiffstats
path: root/stanza/src/client
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stanza/src/client/message.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/stanza/src/client/message.rs b/stanza/src/client/message.rs
index 66db921..3a7be9a 100644
--- a/stanza/src/client/message.rs
+++ b/stanza/src/client/message.rs
@@ -15,6 +15,8 @@ use crate::xep_0203::Delay;
use crate::xep_0280::{Private, Received, Sent};
#[cfg(feature = "xep_0297")]
use crate::xep_0297::Forwarded;
+#[cfg(feature = "xep_0334")]
+use crate::xep_0334::{NoCopy, NoPermanentStore, NoStore, Store};
use super::XMLNS;
@@ -46,6 +48,14 @@ pub struct Message {
pub received: Option<Received>,
#[cfg(feature = "xep_0280")]
pub private: Option<Private>,
+ #[cfg(feature = "xep_0334")]
+ pub no_permanent_store: Option<NoPermanentStore>,
+ #[cfg(feature = "xep_0334")]
+ pub no_store: Option<NoStore>,
+ #[cfg(feature = "xep_0334")]
+ pub no_copy: Option<NoCopy>,
+ #[cfg(feature = "xep_0334")]
+ pub store: Option<Store>,
}
impl FromElement for Message {
@@ -87,6 +97,18 @@ impl FromElement for Message {
#[cfg(feature = "xep_0280")]
let private = element.child_opt()?;
+ #[cfg(feature = "xep_0334")]
+ let no_permanent_store = element.child_opt()?;
+
+ #[cfg(feature = "xep_0334")]
+ let no_store = element.child_opt()?;
+
+ #[cfg(feature = "xep_0334")]
+ let no_copy = element.child_opt()?;
+
+ #[cfg(feature = "xep_0334")]
+ let store = element.child_opt()?;
+
Ok(Message {
from,
id,
@@ -112,6 +134,14 @@ impl FromElement for Message {
received,
#[cfg(feature = "xep_0280")]
private,
+ #[cfg(feature = "xep_0334")]
+ no_permanent_store,
+ #[cfg(feature = "xep_0334")]
+ no_store,
+ #[cfg(feature = "xep_0334")]
+ no_copy,
+ #[cfg(feature = "xep_0334")]
+ store,
})
}
}
@@ -158,6 +188,18 @@ impl IntoElement for Message {
#[cfg(feature = "xep_0280")]
let builder = builder.push_child_opt(self.private.clone());
+ #[cfg(feature = "xep_0334")]
+ let builder = builder.push_child_opt(self.no_permanent_store);
+
+ #[cfg(feature = "xep_0334")]
+ let builder = builder.push_child_opt(self.no_store);
+
+ #[cfg(feature = "xep_0334")]
+ let builder = builder.push_child_opt(self.no_copy);
+
+ #[cfg(feature = "xep_0334")]
+ let builder = builder.push_child_opt(self.store);
+
builder
}
}