pub struct EventId(/* private fields */);Expand description
A Matrix event ID.
An EventId is generated randomly or converted from a string slice, and can be converted back
into a string as needed.
§Room versions
Matrix specifies multiple room versions and the
format of event identifiers differ between them. The original format used by room versions 1 and
2 uses a short pseudorandom “localpart” followed by the hostname and port of the originating
homeserver. Later room versions change event identifiers to be a hash of the event encoded with
Base64. Some of the methods provided by EventId are only relevant to the original event
format.
// Original format
assert_eq!(<&EventId>::try_from("$h29iv0s8:example.com").unwrap(), "$h29iv0s8:example.com");
// Room version 3 format
assert_eq!(
<&EventId>::try_from("$acR1l0raoZnm60CBwAVgqbZqoO/mYU81xysh1u7XcJk").unwrap(),
"$acR1l0raoZnm60CBwAVgqbZqoO/mYU81xysh1u7XcJk"
);
// Room version 4 format
assert_eq!(
<&EventId>::try_from("$Rqnc-F-dvnEYJTyHq_iKxU2bZ1CI92-kuZq3a5lr5Zg").unwrap(),
"$Rqnc-F-dvnEYJTyHq_iKxU2bZ1CI92-kuZq3a5lr5Zg"
);Implementations§
Source§impl EventId
impl EventId
Sourcepub fn parse(s: impl AsRef<str> + Into<Box<str>>) -> Result<Box<Self>, Error>
pub fn parse(s: impl AsRef<str> + Into<Box<str>>) -> Result<Box<Self>, Error>
Try parsing a &str into a Box<EventId>.
The same can also be done using FromStr, TryFrom or TryInto.
This function is simply more constrained and thus useful in generic contexts.
Source§impl EventId
impl EventId
Sourcepub fn new(server_name: &ServerName) -> Box<Self>
Available on crate feature rand only.
pub fn new(server_name: &ServerName) -> Box<Self>
rand only.Attempts to generate an EventId for the given origin server with a localpart consisting
of 18 random ASCII characters.
This should only be used for events in the original format as used by Matrix room versions 1 and 2.
Sourcepub fn localpart(&self) -> &str
pub fn localpart(&self) -> &str
Returns the event’s unique ID.
For the original event format as used by Matrix room versions 1 and 2, this is the
“localpart” that precedes the homeserver. For later formats, this is the entire ID without
the leading $ sigil.
Sourcepub fn server_name(&self) -> Option<&ServerName>
pub fn server_name(&self) -> Option<&ServerName>
Returns the server name of the event ID.
Only applicable to events in the original format as used by Matrix room versions 1 and 2.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Box<EventId>
Available on crate feature serde only.
impl<'de> Deserialize<'de> for Box<EventId>
serde only.