Change summary
jid/CHANGELOG.md | 1 +
jid/src/inner.rs | 5 +++++
jid/src/lib.rs | 17 +++++++++++++++++
3 files changed, 23 insertions(+)
Detailed changes
@@ -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
@@ -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 {
@@ -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")]