#[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§
source§impl EventId
impl EventId
sourcepub fn parse(s: impl AsRef<str>) -> Result<OwnedEventId, Error>
pub fn parse(s: impl AsRef<str>) -> Result<OwnedEventId, Error>
Try parsing a &str
into an OwnedEventId
.
The same can also be done using FromStr
, TryFrom
or TryInto
.
This function is simply more constrained and thus useful in generic contexts.
sourcepub fn parse_box(
s: impl AsRef<str> + Into<Box<str, Global>>
) -> Result<Box<EventId, Global>, Error>
pub fn parse_box( s: impl AsRef<str> + Into<Box<str, Global>> ) -> Result<Box<EventId, Global>, 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) -> OwnedEventId
Available on crate feature rand
only.
pub fn new(server_name: &ServerName) -> OwnedEventId
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 AsRef<EventId> for OwnedEventId
impl AsRef<EventId> for OwnedEventId
source§impl Borrow<EventId> for OwnedEventId
impl Borrow<EventId> for OwnedEventId
source§impl<'de> Deserialize<'de> for Box<EventId, Global>
impl<'de> Deserialize<'de> for Box<EventId, Global>
source§fn deserialize<D>(
deserializer: D
) -> Result<Box<EventId, Global>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>( deserializer: D ) -> Result<Box<EventId, Global>, <D as Deserializer<'de>>::Error>where D: Deserializer<'de>,
source§impl From<&EventId> for OwnedEventId
impl From<&EventId> for OwnedEventId
source§fn from(id: &EventId) -> OwnedEventId
fn from(id: &EventId) -> OwnedEventId
source§impl PartialEq<&EventId> for OwnedEventId
impl PartialEq<&EventId> for OwnedEventId
source§impl PartialEq<&str> for EventId
impl PartialEq<&str> for EventId
source§impl PartialEq<Box<EventId, Global>> for &EventId
impl PartialEq<Box<EventId, Global>> for &EventId
source§impl PartialEq<Box<EventId, Global>> for EventId
impl PartialEq<Box<EventId, Global>> for EventId
source§impl PartialEq<EventId> for &str
impl PartialEq<EventId> for &str
source§impl PartialEq<EventId> for EventId
impl PartialEq<EventId> for EventId
source§impl PartialEq<EventId> for OwnedEventId
impl PartialEq<EventId> for OwnedEventId
source§impl PartialEq<EventId> for str
impl PartialEq<EventId> for str
source§impl PartialEq<OwnedEventId> for &EventId
impl PartialEq<OwnedEventId> for &EventId
source§fn eq(&self, other: &OwnedEventId) -> bool
fn eq(&self, other: &OwnedEventId) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialEq<OwnedEventId> for EventId
impl PartialEq<OwnedEventId> for EventId
source§fn eq(&self, other: &OwnedEventId) -> bool
fn eq(&self, other: &OwnedEventId) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialEq<String> for EventId
impl PartialEq<String> for EventId
source§impl PartialOrd<EventId> for EventId
impl PartialOrd<EventId> for EventId
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more