@@ -190,6 +190,29 @@ impl Jid {
}
}
+ /// Returns a new Jabber ID from the current one with only node and domain.
+ ///
+ /// This is of the form `node`@`domain`.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// use jid::Jid;
+ ///
+ /// let jid = Jid::full("node", "domain", "resource").into_bare_jid();
+ ///
+ /// assert_eq!(jid.node, Some("node".to_owned()));
+ /// assert_eq!(jid.domain, "domain".to_owned());
+ /// assert_eq!(jid.resource, None);
+ /// ```
+ pub fn into_bare_jid(self) -> Jid {
+ Jid {
+ node: self.node,
+ domain: self.domain,
+ resource: None,
+ }
+ }
+
/// Constructs a Jabber ID containing only a `domain`.
///
/// This is of the form `domain`.
@@ -214,6 +237,29 @@ impl Jid {
}
}
+ /// Returns a new Jabber ID from the current one with only domain.
+ ///
+ /// This is of the form `domain`.
+ ///
+ /// # Examples
+ ///
+ /// ```
+ /// use jid::Jid;
+ ///
+ /// let jid = Jid::full("node", "domain", "resource").into_domain_jid();
+ ///
+ /// assert_eq!(jid.node, None);
+ /// assert_eq!(jid.domain, "domain".to_owned());
+ /// assert_eq!(jid.resource, None);
+ /// ```
+ pub fn into_domain_jid(self) -> Jid {
+ Jid {
+ node: None,
+ domain: self.domain,
+ resource: None,
+ }
+ }
+
/// Constructs a Jabber ID containing the `domain` and `resource` components.
///
/// This is of the form `domain`/`resource`.