Struct ruma_identifiers::RoomId
source · [−]#[repr(transparent)]pub struct RoomId(_);
Expand description
A Matrix room ID.
A RoomId
is generated randomly or converted from a string slice, and can be converted back
into a string as needed.
assert_eq!(<&RoomId>::try_from("!n8f893n9:example.com").unwrap(), "!n8f893n9:example.com");
Implementations
sourceimpl RoomId
impl RoomId
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<RoomId>
.
The same can also be done using FromStr
, TryFrom
or TryInto
.
This function is simply more constrained and thus useful in generic contexts.
sourceimpl RoomId
impl RoomId
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 a RoomId
for the given origin server with a localpart consisting of
18 random ASCII characters.
Fails if the given homeserver cannot be parsed as a valid host.
sourcepub fn server_name(&self) -> &ServerName
pub fn server_name(&self) -> &ServerName
Returns the server name of the room ID.
sourcepub fn matrix_to_uri<'a>(
&self,
via: impl IntoIterator<Item = &'a ServerName>
) -> MatrixToUri
pub fn matrix_to_uri<'a>(
&self,
via: impl IntoIterator<Item = &'a ServerName>
) -> MatrixToUri
Create a matrix.to
URI for this room ID.
Example
use ruma_identifiers::{room_id, server_name};
assert_eq!(
room_id!("!somewhere:example.org")
.matrix_to_uri([&*server_name!("example.org"), &*server_name!("alt.example.org")])
.to_string(),
"https://matrix.to/#/%21somewhere%3Aexample.org?via=example.org&via=alt.example.org"
);
sourcepub fn matrix_to_event_uri(&self, ev_id: &EventId) -> MatrixToUri
pub fn matrix_to_event_uri(&self, ev_id: &EventId) -> MatrixToUri
Create a matrix.to
URI for an event scoped under this room ID.
sourcepub fn matrix_uri<'a>(
&self,
via: impl IntoIterator<Item = &'a ServerName>,
join: bool
) -> MatrixUri
pub fn matrix_uri<'a>(
&self,
via: impl IntoIterator<Item = &'a ServerName>,
join: bool
) -> MatrixUri
Create a matrix:
URI for this room ID.
If join
is true
, a click on the URI should join the room.
Example
use ruma_identifiers::{room_id, server_name};
assert_eq!(
room_id!("!somewhere:example.org")
.matrix_uri([&*server_name!("example.org"), &*server_name!("alt.example.org")], true)
.to_string(),
"matrix:roomid/somewhere:example.org?via=example.org&via=alt.example.org&action=join"
);
sourcepub fn matrix_event_uri<'a>(
&self,
ev_id: &EventId,
via: impl IntoIterator<Item = &'a ServerName>
) -> MatrixUri
pub fn matrix_event_uri<'a>(
&self,
ev_id: &EventId,
via: impl IntoIterator<Item = &'a ServerName>
) -> MatrixUri
Create a matrix:
URI for an event scoped under this room ID.
Trait Implementations
sourceimpl<'a> From<&'a RoomId> for &'a RoomOrAliasId
impl<'a> From<&'a RoomId> for &'a RoomOrAliasId
sourceimpl Ord for RoomId
impl Ord for RoomId
sourceimpl PartialOrd<RoomId> for RoomId
impl PartialOrd<RoomId> for RoomId
sourcefn partial_cmp(&self, other: &RoomId) -> Option<Ordering>
fn partial_cmp(&self, other: &RoomId) -> 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
sourceimpl ToOwned for RoomId
impl ToOwned for RoomId
sourceimpl<'a> TryFrom<&'a RoomOrAliasId> for &'a RoomId
impl<'a> TryFrom<&'a RoomOrAliasId> for &'a RoomId
type Error = &'a RoomAliasId
type Error = &'a RoomAliasId
The type returned in the event of a conversion error.
sourcefn try_from(id: &'a RoomOrAliasId) -> Result<&'a RoomId, &'a RoomAliasId>
fn try_from(id: &'a RoomOrAliasId) -> Result<&'a RoomId, &'a RoomAliasId>
Performs the conversion.