1
0
mirror of https://gitlab.com/xmpp-rs/xmpp-rs.git synced 2024-06-26 00:48:27 +02:00

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
parent 9608b59f60
commit 2c701038cd
3 changed files with 23 additions and 0 deletions

View File

@ -20,6 +20,7 @@ Version xxx, release xxx:
`impl From<DomainPart> for BareJid` and
`impl From<DomainPart> for Jid`, both of which are (unlike
`::from_parts`) copy-free.
- `as_str` methods have been added on all Jid types.
Version 0.10.0, release 2023-08-17:
* Breaking

View File

@ -141,6 +141,11 @@ impl InnerJid {
ResourceRef::from_str_unchecked(&self.normalized[slash + 1..])
})
}
#[inline(always)]
pub(crate) fn as_str(&self) -> &str {
self.normalized.as_str()
}
}
impl FromStr for InnerJid {

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")]