Impl Display for Jid

Randy von der Weide created

Change summary

src/lib.rs | 14 ++++++++++++++
1 file changed, 14 insertions(+)

Detailed changes

src/lib.rs 🔗

@@ -92,6 +92,12 @@ impl From<FullJid> for Jid {
     }
 }
 
+impl fmt::Display for Jid {
+    fn fmt(&self, fmt: &mut fmt::Formatter) -> Result<(), fmt::Error> {
+        fmt.write_str(String::from(self.clone()).as_ref())
+    }
+}
+
 impl Jid {
     /// The node part of the Jabber ID, if it exists, else None.
     pub fn node(self) -> Option<String> {
@@ -696,6 +702,14 @@ mod tests {
         assert_eq!(FullJid::from_str("a@b"), Err(JidParseError::NoResource));
     }
 
+    #[test]
+    fn display_jids() {
+      assert_eq!(format!("{}", FullJid::new("a", "b", "c")), String::from("a@b/c"));
+      assert_eq!(format!("{}", BareJid::new("a", "b")), String::from("a@b"));
+      assert_eq!(format!("{}", Jid::Full(FullJid::new("a", "b", "c"))), String::from("a@b/c"));
+      assert_eq!(format!("{}", Jid::Bare(BareJid::new("a", "b"))), String::from("a@b"));
+    }
+
     #[cfg(feature = "minidom")]
     #[test]
     fn minidom() {