diff --git a/src/lib.rs b/src/lib.rs index b78001b..5ced400 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -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`.