Add get_ functions that return new truncated structs from the current one

This commit is contained in:
Maxime “pep” Buquet 2017-06-12 17:40:39 +01:00
parent abaf16079c
commit 072cba6a3e

View file

@ -190,6 +190,28 @@ 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").get_bare();
///
/// assert_eq!(jid.node, Some("node".to_owned()));
/// assert_eq!(jid.domain, "domain".to_owned());
/// assert_eq!(jid.resource, None);
pub fn get_bare(self) -> Jid {
Jid {
node: self.node.clone(),
domain: self.domain.clone(),
resource: None,
}
}
/// Constructs a Jabber ID containing only a `domain`. /// Constructs a Jabber ID containing only a `domain`.
/// ///
/// This is of the form `domain`. /// This is of the form `domain`.
@ -214,6 +236,28 @@ 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").get_domain();
///
/// assert_eq!(jid.node, None);
/// assert_eq!(jid.domain, "domain".to_owned());
/// assert_eq!(jid.resource, None);
pub fn get_domain(self) -> Jid {
Jid {
node: None,
domain: self.domain.clone(),
resource: None,
}
}
/// Constructs a Jabber ID containing the `domain` and `resource` components. /// Constructs a Jabber ID containing the `domain` and `resource` components.
/// ///
/// This is of the form `domain`/`resource`. /// This is of the form `domain`/`resource`.