Struct ruma_identifiers::EventId
source · [−]#[repr(transparent)]pub struct EventId(_);
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
sourceimpl 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.
sourceimpl 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
sourceimpl Ord for EventId
impl Ord for EventId
sourceimpl PartialOrd<EventId> for EventId
impl PartialOrd<EventId> for EventId
sourcefn partial_cmp(&self, other: &EventId) -> Option<Ordering>
fn partial_cmp(&self, other: &EventId) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more