matrix_sdk::ruma

Struct OwnedRoomId

pub struct OwnedRoomId { /* private fields */ }
Expand description

Owned variant of RoomId

The wrapper type for this type is variable, by default it’ll use Box, but you can change that by setting “--cfg=ruma_identifiers_storage=...” using RUSTFLAGS or .cargo/config.toml (under [build] -> rustflags = ["..."]) to the following;

  • ruma_identifiers_storage="Arc" to use Arc as a wrapper type.

Methods from Deref<Target = RoomId>§

pub fn as_str(&self) -> &str

Creates a string slice from this RoomId.

pub fn as_bytes(&self) -> &[u8]

Creates a byte slice from this RoomId.

pub fn server_name(&self) -> Option<&ServerName>

Returns the server name of the room ID.

pub fn matrix_to_uri(&self) -> MatrixToUri

Create a matrix.to URI for this room ID.

Note that it is recommended to provide servers that should know the room to be able to find it with its room ID. For that use RoomId::matrix_to_uri_via().

§Example
use ruma_common::{room_id, server_name};

assert_eq!(
    room_id!("!somewhere:example.org").matrix_to_uri().to_string(),
    "https://matrix.to/#/!somewhere:example.org"
);

pub fn matrix_to_uri_via<T>(&self, via: T) -> MatrixToUri

Create a matrix.to URI for this room ID with a list of servers that should know it.

To get the list of servers, it is recommended to use the routing algorithm from the spec.

If you don’t have a list of servers, you can use RoomId::matrix_to_uri() instead.

§Example
use ruma_common::{room_id, server_name};

assert_eq!(
    room_id!("!somewhere:example.org")
        .matrix_to_uri_via([&*server_name!("example.org"), &*server_name!("alt.example.org")])
        .to_string(),
    "https://matrix.to/#/!somewhere:example.org?via=example.org&via=alt.example.org"
);

pub fn matrix_to_event_uri(&self, ev_id: impl Into<OwnedEventId>) -> MatrixToUri

Create a matrix.to URI for an event scoped under this room ID.

Note that it is recommended to provide servers that should know the room to be able to find it with its room ID. For that use RoomId::matrix_to_event_uri_via().

pub fn matrix_to_event_uri_via<T>( &self, ev_id: impl Into<OwnedEventId>, via: T, ) -> MatrixToUri

Create a matrix.to URI for an event scoped under this room ID with a list of servers that should know it.

To get the list of servers, it is recommended to use the routing algorithm from the spec.

If you don’t have a list of servers, you can use RoomId::matrix_to_event_uri() instead.

pub fn matrix_uri(&self, join: bool) -> MatrixUri

Create a matrix: URI for this room ID.

If join is true, a click on the URI should join the room.

Note that it is recommended to provide servers that should know the room to be able to find it with its room ID. For that use RoomId::matrix_uri_via().

§Example
use ruma_common::{room_id, server_name};

assert_eq!(
    room_id!("!somewhere:example.org").matrix_uri(false).to_string(),
    "matrix:roomid/somewhere:example.org"
);

pub fn matrix_uri_via<T>(&self, via: T, join: bool) -> MatrixUri

Create a matrix: URI for this room ID with a list of servers that should know it.

To get the list of servers, it is recommended to use the routing algorithm from the spec.

If you don’t have a list of servers, you can use RoomId::matrix_uri() instead.

If join is true, a click on the URI should join the room.

§Example
use ruma_common::{room_id, server_name};

assert_eq!(
    room_id!("!somewhere:example.org")
        .matrix_uri_via(
            [&*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"
);

pub fn matrix_event_uri(&self, ev_id: impl Into<OwnedEventId>) -> MatrixUri

Create a matrix: URI for an event scoped under this room ID.

Note that it is recommended to provide servers that should know the room to be able to find it with its room ID. For that use RoomId::matrix_event_uri_via().

pub fn matrix_event_uri_via<T>( &self, ev_id: impl Into<OwnedEventId>, via: T, ) -> MatrixUri

Create a matrix: URI for an event scoped under this room ID with a list of servers that should know it.

To get the list of servers, it is recommended to use the routing algorithm from the spec.

If you don’t have a list of servers, you can use RoomId::matrix_event_uri() instead.

Trait Implementations§

§

impl AsRef<[u8]> for OwnedRoomId

§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
§

impl AsRef<RoomId> for OwnedRoomId

§

fn as_ref(&self) -> &RoomId

Converts this type into a shared reference of the (usually inferred) input type.
§

impl AsRef<str> for OwnedRoomId

§

fn as_ref(&self) -> &str

Converts this type into a shared reference of the (usually inferred) input type.
§

impl Borrow<RoomId> for OwnedRoomId

§

fn borrow(&self) -> &RoomId

Immutably borrows from an owned value. Read more
§

impl Clone for OwnedRoomId

§

fn clone(&self) -> OwnedRoomId

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for OwnedRoomId

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl Deref for OwnedRoomId

§

type Target = RoomId

The resulting type after dereferencing.
§

fn deref(&self) -> &<OwnedRoomId as Deref>::Target

Dereferences the value.
§

impl<'de> Deserialize<'de> for OwnedRoomId

§

fn deserialize<D>( deserializer: D, ) -> Result<OwnedRoomId, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl Display for OwnedRoomId

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<&RoomId> for OwnedRoomId

§

fn from(id: &RoomId) -> OwnedRoomId

Converts to this type from the input type.
§

impl From<Arc<RoomId>> for OwnedRoomId

§

fn from(a: Arc<RoomId>) -> OwnedRoomId

Converts to this type from the input type.
§

impl From<Box<RoomId>> for OwnedRoomId

§

fn from(b: Box<RoomId>) -> OwnedRoomId

Converts to this type from the input type.
§

impl From<OwnedRoomId> for Arc<RoomId>

§

fn from(a: OwnedRoomId) -> Arc<RoomId>

Converts to this type from the input type.
§

impl From<OwnedRoomId> for Box<RoomId>

§

fn from(a: OwnedRoomId) -> Box<RoomId>

Converts to this type from the input type.
§

impl From<OwnedRoomId> for MatrixId

§

fn from(room_id: OwnedRoomId) -> MatrixId

Converts to this type from the input type.
§

impl From<OwnedRoomId> for OwnedRoomOrAliasId

§

fn from(room_id: OwnedRoomId) -> OwnedRoomOrAliasId

Converts to this type from the input type.
§

impl From<OwnedRoomId> for String

§

fn from(id: OwnedRoomId) -> String

Converts to this type from the input type.
§

impl FromStr for OwnedRoomId

§

type Err = Error

The associated error which can be returned from parsing.
§

fn from_str(s: &str) -> Result<OwnedRoomId, <OwnedRoomId as FromStr>::Err>

Parses a string s to return a value of this type. Read more
§

impl Hash for OwnedRoomId

§

fn hash<H>(&self, state: &mut H)
where H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl Ord for OwnedRoomId

§

fn cmp(&self, other: &OwnedRoomId) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
§

impl PartialEq<&RoomId> for OwnedRoomId

§

fn eq(&self, other: &&RoomId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq<&str> for OwnedRoomId

§

fn eq(&self, other: &&str) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq<Arc<RoomId>> for OwnedRoomId

§

fn eq(&self, other: &Arc<RoomId>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq<Box<RoomId>> for OwnedRoomId

§

fn eq(&self, other: &Box<RoomId>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq<OwnedRoomId> for &RoomId

§

fn eq(&self, other: &OwnedRoomId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq<OwnedRoomId> for &str

§

fn eq(&self, other: &OwnedRoomId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq<OwnedRoomId> for Box<RoomId>

§

fn eq(&self, other: &OwnedRoomId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq<OwnedRoomId> for RoomId

§

fn eq(&self, other: &OwnedRoomId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq<OwnedRoomId> for String

§

fn eq(&self, other: &OwnedRoomId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq<OwnedRoomId> for str

§

fn eq(&self, other: &OwnedRoomId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq<RoomId> for OwnedRoomId

§

fn eq(&self, other: &RoomId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq<String> for OwnedRoomId

§

fn eq(&self, other: &String) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq<str> for OwnedRoomId

§

fn eq(&self, other: &str) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq for OwnedRoomId

§

fn eq(&self, other: &OwnedRoomId) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialOrd for OwnedRoomId

§

fn partial_cmp(&self, other: &OwnedRoomId) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
§

impl Serialize for OwnedRoomId

§

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl TryFrom<&str> for OwnedRoomId

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_from( s: &str, ) -> Result<OwnedRoomId, <OwnedRoomId as TryFrom<&str>>::Error>

Performs the conversion.
§

impl TryFrom<OwnedRoomOrAliasId> for OwnedRoomId

§

type Error = OwnedRoomAliasId

The type returned in the event of a conversion error.
§

fn try_from(id: OwnedRoomOrAliasId) -> Result<OwnedRoomId, OwnedRoomAliasId>

Performs the conversion.
§

impl TryFrom<String> for OwnedRoomId

§

type Error = Error

The type returned in the event of a conversion error.
§

fn try_from( s: String, ) -> Result<OwnedRoomId, <OwnedRoomId as TryFrom<String>>::Error>

Performs the conversion.
§

impl Eq for OwnedRoomId

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
§

impl<T> CompatExt for T

§

fn compat(self) -> Compat<T>

Applies the [Compat] adapter by value. Read more
§

fn compat_ref(&self) -> Compat<&T>

Applies the [Compat] adapter by shared reference. Read more
§

fn compat_mut(&mut self) -> Compat<&mut T>

Applies the [Compat] adapter by mutable reference. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T, UT> HandleAlloc<UT> for T
where T: Send + Sync,

Source§

fn new_handle(value: Arc<T>) -> Handle

Create a new handle for an Arc value Read more
Source§

fn clone_handle(handle: Handle) -> Handle

Clone a handle Read more
Source§

fn consume_handle(handle: Handle) -> Arc<T>

Consume a handle, getting back the initial Arc<>
Source§

fn get_arc(handle: Handle) -> Arc<Self>

Get a clone of the Arc<> using a “borrowed” handle. Read more
Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<I> IntoResettable<String> for I
where I: Into<String>,

Source§

fn into_resettable(self) -> Resettable<String>

Convert to the intended resettable type
Source§

impl<Ctx, T> MeasureWith<Ctx> for T
where T: AsRef<[u8]>,

Source§

fn measure_with(&self, _ctx: &Ctx) -> usize

How large is Self, given the ctx?
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
Available on non-bootstrap only.
The target type on which the method may be called.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
Source§

impl<T> Any for T
where T: Any,

Source§

impl<T> AsyncTraitDeps for T

Source§

impl<T> CloneAny for T
where T: Any + Clone,

Source§

impl<T> CloneAnySend for T
where T: Any + Send + Clone,

Source§

impl<T> CloneAnySendSync for T
where T: Any + Send + Sync + Clone,

Source§

impl<T> CloneAnySync for T
where T: Any + Sync + Clone,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T

Source§

impl<T> SendOutsideWasm for T
where T: Send,

Source§

impl<T> SyncOutsideWasm for T
where T: Sync,