pub struct RoomPreview {Show 13 fields
pub room_id: OwnedRoomId,
pub canonical_alias: Option<OwnedRoomAliasId>,
pub name: Option<String>,
pub topic: Option<String>,
pub avatar_url: Option<OwnedMxcUri>,
pub num_joined_members: u64,
pub num_active_members: Option<u64>,
pub room_type: Option<RoomType>,
pub join_rule: SpaceRoomJoinRule,
pub is_world_readable: Option<bool>,
pub state: Option<RoomState>,
pub is_direct: Option<bool>,
pub heroes: Option<Vec<RoomHero>>,
}
Expand description
The preview of a room, be it invited/joined/left, or not.
Fields§
§room_id: OwnedRoomId
The actual room id for this room.
Remember the room preview can be fetched from a room alias id, so we might not know ahead of time what the room id is.
canonical_alias: Option<OwnedRoomAliasId>
The canonical alias for the room.
name: Option<String>
The room’s name, if set.
topic: Option<String>
The room’s topic, if set.
avatar_url: Option<OwnedMxcUri>
The MXC URI to the room’s avatar, if set.
num_joined_members: u64
The number of joined members.
num_active_members: Option<u64>
The number of active members, if known (joined + invited).
room_type: Option<RoomType>
The room type (space, custom) or nothing, if it’s a regular room.
join_rule: SpaceRoomJoinRule
What’s the join rule for this room?
is_world_readable: Option<bool>
Is the room world-readable (i.e. is its history_visibility set to world_readable)?
state: Option<RoomState>
Has the current user been invited/joined/left this room?
Set to None
if the room is unknown to the user.
is_direct: Option<bool>
The m.room.direct
state of the room, if known.
heroes: Option<Vec<RoomHero>>
Room heroes.
Implementations§
Source§impl RoomPreview
impl RoomPreview
Sourcepub async fn from_room_summary(
client: &Client,
room_id: OwnedRoomId,
room_or_alias_id: &RoomOrAliasId,
via: Vec<OwnedServerName>,
) -> Result<Self>
pub async fn from_room_summary( client: &Client, room_id: OwnedRoomId, room_or_alias_id: &RoomOrAliasId, via: Vec<OwnedServerName>, ) -> Result<Self>
Get a RoomPreview
using MSC3266, if available on the remote server.
Will fail with a 404 if the API is not available.
This method is exposed for testing purposes; clients should prefer
Client::get_room_preview
in general over this.
Sourcepub async fn from_state_events(
client: &Client,
room_id: &RoomId,
) -> Result<Self>
pub async fn from_state_events( client: &Client, room_id: &RoomId, ) -> Result<Self>
Get a RoomPreview
using the room state endpoint.
This is always available on a remote server, but will only work if one of these two conditions is true:
- the user has joined the room at some point (i.e. they’re still joined or they’ve joined it and left it later).
- the room has an history visibility set to world-readable.
This method is exposed for testing purposes; clients should prefer
Client::get_room_preview
in general over this.
Trait Implementations§
Source§impl Clone for RoomPreview
impl Clone for RoomPreview
Source§fn clone(&self) -> RoomPreview
fn clone(&self) -> RoomPreview
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for RoomPreview
impl RefUnwindSafe for RoomPreview
impl Send for RoomPreview
impl Sync for RoomPreview
impl Unpin for RoomPreview
impl UnwindSafe for RoomPreview
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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