Struct ruma_common::UserId
source · pub struct UserId(_);
Expand description
A Matrix user ID.
A UserId
is generated randomly or converted from a string slice, and can be converted back
into a string as needed.
assert_eq!(<&UserId>::try_from("@carl:example.com").unwrap(), "@carl:example.com");
Implementations§
source§impl UserId
impl UserId
sourcepub fn parse(s: impl AsRef<str>) -> Result<OwnedUserId, IdParseError>
pub fn parse(s: impl AsRef<str>) -> Result<OwnedUserId, IdParseError>
Try parsing a &str
into an OwnedUserId
.
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<Self>, IdParseError>
pub fn parse_box( s: impl AsRef<str> + Into<Box<str>> ) -> Result<Box<Self>, IdParseError>
Try parsing a &str
into a Box<UserId>
.
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 UserId
impl UserId
sourcepub fn new(server_name: &ServerName) -> OwnedUserId
Available on crate feature rand
only.
pub fn new(server_name: &ServerName) -> OwnedUserId
rand
only.Attempts to generate a UserId
for the given origin server with a localpart consisting of
12 random ASCII characters.
sourcepub fn parse_with_server_name(
id: impl AsRef<str> + Into<Box<str>>,
server_name: &ServerName
) -> Result<OwnedUserId, IdParseError>
pub fn parse_with_server_name( id: impl AsRef<str> + Into<Box<str>>, server_name: &ServerName ) -> Result<OwnedUserId, IdParseError>
Attempts to complete a user ID, by adding the colon + server name and @
prefix, if not
present already.
This is a convenience function for the login API, where a user can supply either their full
user ID or just the localpart. It only supports a valid user ID or a valid user ID
localpart, not the localpart plus the @
prefix, or the localpart plus server name without
the @
prefix.
sourcepub fn parse_with_server_name_rc(
id: impl AsRef<str> + Into<Rc<str>>,
server_name: &ServerName
) -> Result<Rc<Self>, IdParseError>
pub fn parse_with_server_name_rc( id: impl AsRef<str> + Into<Rc<str>>, server_name: &ServerName ) -> Result<Rc<Self>, IdParseError>
Variation of parse_with_server_name
that returns Rc<Self>
.
sourcepub fn parse_with_server_name_arc(
id: impl AsRef<str> + Into<Arc<str>>,
server_name: &ServerName
) -> Result<Arc<Self>, IdParseError>
pub fn parse_with_server_name_arc( id: impl AsRef<str> + Into<Arc<str>>, server_name: &ServerName ) -> Result<Arc<Self>, IdParseError>
Variation of parse_with_server_name
that returns Arc<Self>
.
sourcepub fn server_name(&self) -> &ServerName
pub fn server_name(&self) -> &ServerName
Returns the server name of the user ID.
sourcepub fn is_historical(&self) -> bool
pub fn is_historical(&self) -> bool
Whether this user ID is a historical one.
A historical user ID is one that doesn’t conform to the latest specification of the user ID grammar but is still accepted because it was previously allowed.
sourcepub fn matrix_to_uri(&self) -> MatrixToUri
pub fn matrix_to_uri(&self) -> MatrixToUri
Create a matrix.to
URI for this user ID.
Example
use ruma_common::user_id;
let message = format!(
r#"Thanks for the update <a href="{link}">{display_name}</a>."#,
link = user_id!("@jplatte:notareal.hs").matrix_to_uri(),
display_name = "jplatte",
);
sourcepub fn matrix_uri(&self, chat: bool) -> MatrixUri
pub fn matrix_uri(&self, chat: bool) -> MatrixUri
Create a matrix:
URI for this user ID.
If chat
is true
, a click on the URI should start a direct message
with the user.
Example
use ruma_common::user_id;
let message = format!(
r#"Thanks for the update <a href="{link}">{display_name}</a>."#,
link = user_id!("@jplatte:notareal.hs").matrix_uri(false),
display_name = "jplatte",
);
Trait Implementations§
source§impl AsRef<UserId> for OwnedUserId
impl AsRef<UserId> for OwnedUserId
source§impl Borrow<UserId> for OwnedUserId
impl Borrow<UserId> for OwnedUserId
source§impl<'de> Deserialize<'de> for Box<UserId>
impl<'de> Deserialize<'de> for Box<UserId>
source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where D: Deserializer<'de>,
source§impl From<&UserId> for OwnedUserId
impl From<&UserId> for OwnedUserId
source§fn from(id: &UserId) -> OwnedUserId
fn from(id: &UserId) -> OwnedUserId
source§impl PartialEq<&UserId> for Box<UserId>
impl PartialEq<&UserId> for Box<UserId>
source§impl PartialEq<&UserId> for OwnedUserId
impl PartialEq<&UserId> for OwnedUserId
source§impl PartialEq<&str> for Box<UserId>
impl PartialEq<&str> for Box<UserId>
source§impl PartialEq<&str> for UserId
impl PartialEq<&str> for UserId
source§impl PartialEq<Box<UserId, Global>> for &UserId
impl PartialEq<Box<UserId, Global>> for &UserId
source§impl PartialEq<Box<UserId, Global>> for UserId
impl PartialEq<Box<UserId, Global>> for UserId
source§impl PartialEq<OwnedUserId> for &UserId
impl PartialEq<OwnedUserId> for &UserId
source§fn eq(&self, other: &OwnedUserId) -> bool
fn eq(&self, other: &OwnedUserId) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialEq<OwnedUserId> for Box<UserId>
impl PartialEq<OwnedUserId> for Box<UserId>
source§fn eq(&self, other: &OwnedUserId) -> bool
fn eq(&self, other: &OwnedUserId) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialEq<OwnedUserId> for UserId
impl PartialEq<OwnedUserId> for UserId
source§fn eq(&self, other: &OwnedUserId) -> bool
fn eq(&self, other: &OwnedUserId) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialEq<String> for Box<UserId>
impl PartialEq<String> for Box<UserId>
source§impl PartialEq<String> for UserId
impl PartialEq<String> for UserId
source§impl PartialEq<UserId> for &str
impl PartialEq<UserId> for &str
source§impl PartialEq<UserId> for Box<UserId>
impl PartialEq<UserId> for Box<UserId>
source§impl PartialEq<UserId> for OwnedUserId
impl PartialEq<UserId> for OwnedUserId
source§impl PartialEq<UserId> for String
impl PartialEq<UserId> for String
source§impl PartialEq<UserId> for UserId
impl PartialEq<UserId> for UserId
source§impl PartialEq<UserId> for str
impl PartialEq<UserId> for str
source§impl PartialOrd<UserId> for UserId
impl PartialOrd<UserId> for UserId
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