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>) -> 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>>,
) -> Result<Box<EventId>, Error>
pub fn parse_box( s: impl AsRef<str> + Into<Box<str>>, ) -> Result<Box<EventId>, 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
pub fn new(server_name: &ServerName) -> OwnedEventId
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>
impl<'de> Deserialize<'de> for Box<EventId>
source§fn deserialize<D>(
deserializer: D,
) -> Result<Box<EventId>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Box<EventId>, <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>> for &EventId
impl PartialEq<Box<EventId>> for &EventId
source§impl PartialEq<Box<EventId>> for EventId
impl PartialEq<Box<EventId>> for EventId
source§impl PartialEq<EventId> for &str
impl PartialEq<EventId> for &str
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 PartialEq for EventId
impl PartialEq for EventId
source§impl PartialOrd for EventId
impl PartialOrd 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 moresource§impl Serialize for EventId
impl Serialize for EventId
source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
source§impl ToOwned for EventId
impl ToOwned for EventId
§type Owned = OwnedEventId
type Owned = OwnedEventId
source§fn to_owned(&self) -> <EventId as ToOwned>::Owned
fn to_owned(&self) -> <EventId as ToOwned>::Owned
1.63.0 · source§fn clone_into(&self, target: &mut Self::Owned)
fn clone_into(&self, target: &mut Self::Owned)
impl Eq for EventId
impl StructuralPartialEq for EventId
Auto Trait Implementations§
impl Freeze for EventId
impl RefUnwindSafe for EventId
impl Send for EventId
impl !Sized for EventId
impl Sync for EventId
impl Unpin for EventId
impl UnwindSafe for EventId
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.