Implement as_str on all Jid types

This is useful for printing with quotes without copying any data.
This commit is contained in:
Jonas Schäfer 2024-03-09 09:00:36 +01:00
commit 2c701038cd
3 changed files with 23 additions and 0 deletions

View file

@ -196,6 +196,13 @@ impl Jid {
pub fn is_bare(&self) -> bool {
!self.is_full()
}
/// Return a reference to the canonical string representation of the JID.
pub fn as_str(&self) -> &str {
match self {
Jid::Bare(BareJid { inner }) | Jid::Full(FullJid { inner }) => inner.as_str(),
}
}
}
impl TryFrom<Jid> for FullJid {
@ -482,6 +489,11 @@ impl FullJid {
self.inner.slash = None;
BareJid { inner: self.inner }
}
/// Return a reference to the canonical string representation of the JID.
pub fn as_str(&self) -> &str {
self.inner.as_str()
}
}
impl FromStr for BareJid {
@ -608,6 +620,11 @@ impl BareJid {
let resource = ResourcePart::new(resource)?;
Ok(self.with_resource(&resource))
}
/// Return a reference to the canonical string representation of the JID.
pub fn as_str(&self) -> &str {
self.inner.as_str()
}
}
#[cfg(feature = "minidom")]