eme: Add a serialise function.

Emmanuel Gil Peyrot created

Change summary

src/eme.rs | 16 ++++++++++++++++
1 file changed, 16 insertions(+)

Detailed changes

src/eme.rs 🔗

@@ -25,6 +25,14 @@ pub fn parse_explicit_message_encryption(root: &Element) -> Result<ExplicitMessa
     })
 }
 
+pub fn serialise(eme: &ExplicitMessageEncryption) -> Element {
+    Element::builder("encryption")
+            .ns(ns::EME)
+            .attr("namespace", eme.namespace.clone())
+            .attr("name", eme.name.clone())
+            .build()
+}
+
 #[cfg(test)]
 mod tests {
     use minidom::Element;
@@ -65,4 +73,12 @@ mod tests {
         };
         assert_eq!(message, "Unknown child in encryption element.");
     }
+
+    #[test]
+    fn test_serialise() {
+        let elem: Element = "<encryption xmlns='urn:xmpp:eme:0' namespace='coucou'/>".parse().unwrap();
+        let eme = eme::ExplicitMessageEncryption { namespace: String::from("coucou"), name: None };
+        let elem2 = eme::serialise(&eme);
+        assert_eq!(elem, elem2);
+    }
 }