base: Rename RoomType to RoomState
This commit is contained in:
committed by
Jonas Platte
parent
483bef0748
commit
fb4b347433
@@ -1,6 +1,8 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this crate will be documented in this file.
|
||||
## unreleased
|
||||
|
||||
- Rename `RoomType` to `RoomState`
|
||||
|
||||
## 0.5.1
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ use crate::error::Error;
|
||||
use crate::{
|
||||
deserialized_responses::{AmbiguityChanges, MembersResponse, SyncTimelineEvent},
|
||||
error::Result,
|
||||
rooms::{Room, RoomInfo, RoomType},
|
||||
rooms::{Room, RoomInfo, RoomState},
|
||||
store::{
|
||||
ambiguity_map::AmbiguityCache, DynStateStore, Result as StoreResult, StateChanges,
|
||||
StateStoreDataKey, StateStoreDataValue, StateStoreExt, Store, StoreConfig,
|
||||
@@ -167,8 +167,8 @@ impl BaseClient {
|
||||
|
||||
/// Lookup the Room for the given RoomId, or create one, if it didn't exist
|
||||
/// yet in the store
|
||||
pub async fn get_or_create_room(&self, room_id: &RoomId, room_type: RoomType) -> Room {
|
||||
self.store.get_or_create_room(room_id, room_type).await
|
||||
pub async fn get_or_create_room(&self, room_id: &RoomId, room_state: RoomState) -> Room {
|
||||
self.store.get_or_create_room(room_id, room_state).await
|
||||
}
|
||||
|
||||
/// Get all the rooms this client knows about.
|
||||
@@ -623,8 +623,8 @@ impl BaseClient {
|
||||
///
|
||||
/// Update the internal and cached state accordingly. Return the final Room.
|
||||
pub async fn room_joined(&self, room_id: &RoomId) -> Result<Room> {
|
||||
let room = self.store.get_or_create_room(room_id, RoomType::Joined).await;
|
||||
if room.room_type() != RoomType::Joined {
|
||||
let room = self.store.get_or_create_room(room_id, RoomState::Joined).await;
|
||||
if room.state() != RoomState::Joined {
|
||||
let _sync_lock = self.sync_lock().read().await;
|
||||
|
||||
let mut room_info = room.clone_info();
|
||||
@@ -644,8 +644,8 @@ impl BaseClient {
|
||||
///
|
||||
/// Update the internal and cached state accordingly. Return the final Room.
|
||||
pub async fn room_left(&self, room_id: &RoomId) -> Result<Room> {
|
||||
let room = self.store.get_or_create_room(room_id, RoomType::Left).await;
|
||||
if room.room_type() != RoomType::Left {
|
||||
let room = self.store.get_or_create_room(room_id, RoomState::Left).await;
|
||||
if room.state() != RoomState::Left {
|
||||
let _sync_lock = self.sync_lock().read().await;
|
||||
|
||||
let mut room_info = room.clone_info();
|
||||
@@ -718,7 +718,7 @@ impl BaseClient {
|
||||
let mut new_rooms = Rooms::default();
|
||||
|
||||
for (room_id, new_info) in rooms.join {
|
||||
let room = self.store.get_or_create_room(&room_id, RoomType::Joined).await;
|
||||
let room = self.store.get_or_create_room(&room_id, RoomState::Joined).await;
|
||||
let mut room_info = room.clone_info();
|
||||
room_info.mark_as_joined();
|
||||
|
||||
@@ -802,7 +802,7 @@ impl BaseClient {
|
||||
}
|
||||
|
||||
for (room_id, new_info) in rooms.leave {
|
||||
let room = self.store.get_or_create_room(&room_id, RoomType::Left).await;
|
||||
let room = self.store.get_or_create_room(&room_id, RoomState::Left).await;
|
||||
let mut room_info = room.clone_info();
|
||||
room_info.mark_as_left();
|
||||
room_info.mark_state_partially_synced();
|
||||
@@ -1254,7 +1254,7 @@ mod tests {
|
||||
use serde_json::json;
|
||||
|
||||
use super::BaseClient;
|
||||
use crate::{DisplayName, RoomType, SessionMeta};
|
||||
use crate::{DisplayName, RoomState, SessionMeta};
|
||||
|
||||
#[async_test]
|
||||
async fn invite_after_leaving() {
|
||||
@@ -1288,7 +1288,7 @@ mod tests {
|
||||
))
|
||||
.build_sync_response();
|
||||
client.receive_sync_response(response).await.unwrap();
|
||||
assert_eq!(client.get_room(room_id).unwrap().room_type(), RoomType::Left);
|
||||
assert_eq!(client.get_room(room_id).unwrap().state(), RoomState::Left);
|
||||
|
||||
let response = ev_builder
|
||||
.add_invited_room(InvitedRoomBuilder::new(room_id).add_state_event(
|
||||
@@ -1306,7 +1306,7 @@ mod tests {
|
||||
))
|
||||
.build_sync_response();
|
||||
client.receive_sync_response(response).await.unwrap();
|
||||
assert_eq!(client.get_room(room_id).unwrap().room_type(), RoomType::Invited);
|
||||
assert_eq!(client.get_room(room_id).unwrap().state(), RoomState::Invited);
|
||||
}
|
||||
|
||||
#[async_test]
|
||||
@@ -1397,7 +1397,7 @@ mod tests {
|
||||
client.receive_sync_response(response).await.unwrap();
|
||||
|
||||
let room = client.get_room(room_id).expect("Room not found");
|
||||
assert_eq!(room.room_type(), RoomType::Invited);
|
||||
assert_eq!(room.state(), RoomState::Invited);
|
||||
assert_eq!(
|
||||
room.display_name().await.expect("fetching display name failed"),
|
||||
DisplayName::Calculated("Kyra".to_owned())
|
||||
|
||||
@@ -42,7 +42,7 @@ pub use http;
|
||||
#[cfg(feature = "e2e-encryption")]
|
||||
pub use matrix_sdk_crypto as crypto;
|
||||
pub use once_cell;
|
||||
pub use rooms::{DisplayName, Room, RoomInfo, RoomMember, RoomType};
|
||||
pub use rooms::{DisplayName, Room, RoomInfo, RoomMember, RoomState};
|
||||
pub use store::{StateChanges, StateStore, StateStoreDataKey, StateStoreDataValue, StoreError};
|
||||
pub use utils::{
|
||||
MinimalRoomMemberEvent, MinimalStateEvent, OriginalMinimalStateEvent, RedactedMinimalStateEvent,
|
||||
|
||||
@@ -4,7 +4,7 @@ mod normal;
|
||||
use std::{collections::HashSet, fmt};
|
||||
|
||||
pub use members::RoomMember;
|
||||
pub use normal::{Room, RoomInfo, RoomType};
|
||||
pub use normal::{Room, RoomInfo, RoomState};
|
||||
use ruma::{
|
||||
assign,
|
||||
events::{
|
||||
|
||||
@@ -31,7 +31,7 @@ use ruma::{
|
||||
AnyRoomAccountDataEvent, AnyStrippedStateEvent, AnySyncStateEvent,
|
||||
RoomAccountDataEventType,
|
||||
},
|
||||
room::RoomType as CreateRoomType,
|
||||
room::RoomType,
|
||||
EventId, OwnedEventId, OwnedMxcUri, OwnedRoomAliasId, OwnedUserId, RoomAliasId, RoomId,
|
||||
RoomVersionId, UserId,
|
||||
};
|
||||
@@ -71,7 +71,7 @@ pub struct RoomSummary {
|
||||
/// Enum keeping track in which state the room is, e.g. if our own user is
|
||||
/// joined, invited, or has left the room.
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize, Deserialize)]
|
||||
pub enum RoomType {
|
||||
pub enum RoomState {
|
||||
/// The room is in a joined state.
|
||||
Joined,
|
||||
/// The room is in a left state.
|
||||
@@ -85,9 +85,9 @@ impl Room {
|
||||
own_user_id: &UserId,
|
||||
store: Arc<DynStateStore>,
|
||||
room_id: &RoomId,
|
||||
room_type: RoomType,
|
||||
room_state: RoomState,
|
||||
) -> Self {
|
||||
let room_info = RoomInfo::new(room_id, room_type);
|
||||
let room_info = RoomInfo::new(room_id, room_state);
|
||||
Self::restore(own_user_id, store, room_info)
|
||||
}
|
||||
|
||||
@@ -114,14 +114,14 @@ impl Room {
|
||||
&self.own_user_id
|
||||
}
|
||||
|
||||
/// Get the type of the room.
|
||||
pub fn room_type(&self) -> RoomType {
|
||||
self.inner.read().unwrap().room_type
|
||||
/// Get the state of the room.
|
||||
pub fn state(&self) -> RoomState {
|
||||
self.inner.read().unwrap().room_state
|
||||
}
|
||||
|
||||
/// Whether this room's [`RoomType`](CreateRoomType) is `m.space`.
|
||||
/// Whether this room's [`RoomType`] is `m.space`.
|
||||
pub fn is_space(&self) -> bool {
|
||||
self.inner.read().unwrap().room_type().map_or(false, |t| *t == CreateRoomType::Space)
|
||||
self.inner.read().unwrap().room_type().map_or(false, |t| *t == RoomType::Space)
|
||||
}
|
||||
|
||||
/// Get the unread notification counts.
|
||||
@@ -381,13 +381,13 @@ impl Room {
|
||||
members?
|
||||
};
|
||||
|
||||
let (joined, invited) = match self.room_type() {
|
||||
RoomType::Invited => {
|
||||
let (joined, invited) = match self.state() {
|
||||
RoomState::Invited => {
|
||||
// when we were invited we don't have a proper summary, we have to do best
|
||||
// guessing
|
||||
(members.len() as u64, 1u64)
|
||||
}
|
||||
RoomType::Joined if summary.joined_member_count == 0 => {
|
||||
RoomState::Joined if summary.joined_member_count == 0 => {
|
||||
// joined but the summary is not completed yet
|
||||
(
|
||||
(members.len() as u64) + 1, // we've taken ourselves out of the count
|
||||
@@ -514,8 +514,8 @@ impl Room {
|
||||
pub struct RoomInfo {
|
||||
/// The unique room id of the room.
|
||||
pub(crate) room_id: Arc<RoomId>,
|
||||
/// The type of the room.
|
||||
room_type: RoomType,
|
||||
/// The state of the room.
|
||||
room_state: RoomState,
|
||||
/// The unread notifications counts.
|
||||
notification_counts: UnreadNotificationsCount,
|
||||
/// The summary of this room.
|
||||
@@ -572,10 +572,10 @@ fn encryption_state_default() -> bool {
|
||||
|
||||
impl RoomInfo {
|
||||
#[doc(hidden)] // used by store tests, otherwise it would be pub(crate)
|
||||
pub fn new(room_id: &RoomId, room_type: RoomType) -> Self {
|
||||
pub fn new(room_id: &RoomId, room_state: RoomState) -> Self {
|
||||
Self {
|
||||
room_id: room_id.into(),
|
||||
room_type,
|
||||
room_state,
|
||||
notification_counts: Default::default(),
|
||||
summary: Default::default(),
|
||||
members_synced: false,
|
||||
@@ -588,17 +588,17 @@ impl RoomInfo {
|
||||
|
||||
/// Mark this Room as joined.
|
||||
pub fn mark_as_joined(&mut self) {
|
||||
self.room_type = RoomType::Joined;
|
||||
self.room_state = RoomState::Joined;
|
||||
}
|
||||
|
||||
/// Mark this Room as left.
|
||||
pub fn mark_as_left(&mut self) {
|
||||
self.room_type = RoomType::Left;
|
||||
self.room_state = RoomState::Left;
|
||||
}
|
||||
|
||||
/// Mark this Room as invited.
|
||||
pub fn mark_as_invited(&mut self) {
|
||||
self.room_type = RoomType::Invited;
|
||||
self.room_state = RoomState::Invited;
|
||||
}
|
||||
|
||||
/// Mark this Room as having all the members synced.
|
||||
@@ -743,7 +743,7 @@ impl RoomInfo {
|
||||
}
|
||||
|
||||
/// Get the room type of this room.
|
||||
pub fn room_type(&self) -> Option<&CreateRoomType> {
|
||||
pub fn room_type(&self) -> Option<&RoomType> {
|
||||
self.base_info.create.as_ref()?.as_original()?.content.room_type.as_ref()
|
||||
}
|
||||
|
||||
@@ -815,7 +815,7 @@ mod test {
|
||||
MinimalStateEvent, OriginalMinimalStateEvent,
|
||||
};
|
||||
|
||||
fn make_room(room_type: RoomType) -> (Arc<MemoryStore>, Room) {
|
||||
fn make_room(room_type: RoomState) -> (Arc<MemoryStore>, Room) {
|
||||
let store = Arc::new(MemoryStore::new());
|
||||
let user_id = user_id!("@me:example.org");
|
||||
let room_id = room_id!("!test:localhost");
|
||||
@@ -853,7 +853,7 @@ mod test {
|
||||
|
||||
#[async_test]
|
||||
async fn test_display_name_default() {
|
||||
let (_, room) = make_room(RoomType::Joined);
|
||||
let (_, room) = make_room(RoomState::Joined);
|
||||
assert_eq!(room.display_name().await.unwrap(), DisplayName::Empty);
|
||||
|
||||
let canonical_alias_event = MinimalStateEvent::Original(OriginalMinimalStateEvent {
|
||||
@@ -876,7 +876,7 @@ mod test {
|
||||
room.inner.write().unwrap().base_info.name = Some(name_event.clone());
|
||||
assert_eq!(room.display_name().await.unwrap(), DisplayName::Named("Test Room".to_owned()));
|
||||
|
||||
let (_, room) = make_room(RoomType::Invited);
|
||||
let (_, room) = make_room(RoomState::Invited);
|
||||
assert_eq!(room.display_name().await.unwrap(), DisplayName::Empty);
|
||||
|
||||
// has precedence
|
||||
@@ -890,7 +890,7 @@ mod test {
|
||||
|
||||
#[async_test]
|
||||
async fn test_display_name_dm_invited() {
|
||||
let (store, room) = make_room(RoomType::Invited);
|
||||
let (store, room) = make_room(RoomState::Invited);
|
||||
let room_id = room_id!("!test:localhost");
|
||||
let matthew = user_id!("@matthew:example.org");
|
||||
let me = user_id!("@me:example.org");
|
||||
@@ -916,7 +916,7 @@ mod test {
|
||||
|
||||
#[async_test]
|
||||
async fn test_display_name_dm_invited_no_heroes() {
|
||||
let (store, room) = make_room(RoomType::Invited);
|
||||
let (store, room) = make_room(RoomState::Invited);
|
||||
let room_id = room_id!("!test:localhost");
|
||||
let matthew = user_id!("@matthew:example.org");
|
||||
let me = user_id!("@me:example.org");
|
||||
@@ -938,7 +938,7 @@ mod test {
|
||||
|
||||
#[async_test]
|
||||
async fn test_display_name_dm_joined() {
|
||||
let (store, room) = make_room(RoomType::Joined);
|
||||
let (store, room) = make_room(RoomState::Joined);
|
||||
let room_id = room_id!("!test:localhost");
|
||||
let matthew = user_id!("@matthew:example.org");
|
||||
let me = user_id!("@me:example.org");
|
||||
@@ -969,7 +969,7 @@ mod test {
|
||||
|
||||
#[async_test]
|
||||
async fn test_display_name_dm_joined_no_heroes() {
|
||||
let (store, room) = make_room(RoomType::Joined);
|
||||
let (store, room) = make_room(RoomState::Joined);
|
||||
let room_id = room_id!("!test:localhost");
|
||||
let matthew = user_id!("@matthew:example.org");
|
||||
let me = user_id!("@me:example.org");
|
||||
@@ -995,7 +995,7 @@ mod test {
|
||||
|
||||
#[async_test]
|
||||
async fn test_display_name_dm_alone() {
|
||||
let (store, room) = make_room(RoomType::Joined);
|
||||
let (store, room) = make_room(RoomState::Joined);
|
||||
let room_id = room_id!("!test:localhost");
|
||||
let matthew = user_id!("@matthew:example.org");
|
||||
let me = user_id!("@me:example.org");
|
||||
|
||||
@@ -17,7 +17,7 @@ use super::BaseClient;
|
||||
use crate::{
|
||||
deserialized_responses::AmbiguityChanges,
|
||||
error::Result,
|
||||
rooms::RoomType,
|
||||
rooms::RoomState,
|
||||
store::{ambiguity_map::AmbiguityCache, StateChanges},
|
||||
sync::{JoinedRoom, Rooms, SyncResponse},
|
||||
};
|
||||
@@ -138,7 +138,7 @@ impl BaseClient {
|
||||
v3::InvitedRoom::from(v3::InviteState::from(invite_states.clone())),
|
||||
);
|
||||
} else {
|
||||
let room = store.get_or_create_room(room_id, RoomType::Joined).await;
|
||||
let room = store.get_or_create_room(room_id, RoomState::Joined).await;
|
||||
let mut room_info = room.clone_info();
|
||||
room_info.mark_as_joined(); // FIXME: this might not be accurate
|
||||
room_info.mark_state_partially_synced();
|
||||
|
||||
@@ -35,7 +35,7 @@ use crate::{
|
||||
deserialized_responses::MemberEvent,
|
||||
media::{MediaFormat, MediaRequest, MediaThumbnailSize},
|
||||
store::{Result, StateStoreExt},
|
||||
RoomInfo, RoomType, StateChanges, StateStoreDataKey, StateStoreDataValue,
|
||||
RoomInfo, RoomState, StateChanges, StateStoreDataKey, StateStoreDataValue,
|
||||
};
|
||||
|
||||
/// `StateStore` integration tests.
|
||||
@@ -101,7 +101,7 @@ impl StateStoreIntegrationTests for DynStateStore {
|
||||
let pushrules_event = pushrules_raw.deserialize().unwrap();
|
||||
changes.add_account_data(pushrules_event, pushrules_raw);
|
||||
|
||||
let mut room = RoomInfo::new(room_id, RoomType::Joined);
|
||||
let mut room = RoomInfo::new(room_id, RoomState::Joined);
|
||||
room.mark_as_left();
|
||||
|
||||
let tag_json: &JsonValue = &test_json::TAG;
|
||||
@@ -168,7 +168,7 @@ impl StateStoreIntegrationTests for DynStateStore {
|
||||
changes.members.insert(room_id.to_owned(), room_members);
|
||||
changes.add_room(room);
|
||||
|
||||
let mut stripped_room = RoomInfo::new(stripped_room_id, RoomType::Invited);
|
||||
let mut stripped_room = RoomInfo::new(stripped_room_id, RoomState::Invited);
|
||||
|
||||
let stripped_name_json: &JsonValue = &test_json::NAME_STRIPPED;
|
||||
let stripped_name_raw =
|
||||
@@ -764,7 +764,7 @@ impl StateStoreIntegrationTests for DynStateStore {
|
||||
.entry(room_id.to_owned())
|
||||
.or_default()
|
||||
.insert(user_id.to_owned(), membership_event());
|
||||
changes.add_room(RoomInfo::new(room_id, RoomType::Left));
|
||||
changes.add_room(RoomInfo::new(room_id, RoomState::Left));
|
||||
self.save_changes(&changes).await.unwrap();
|
||||
|
||||
let member_event =
|
||||
@@ -778,7 +778,7 @@ impl StateStoreIntegrationTests for DynStateStore {
|
||||
|
||||
let mut changes = StateChanges::default();
|
||||
changes.add_stripped_member(room_id, user_id, custom_stripped_membership_event(user_id));
|
||||
changes.add_stripped_room(RoomInfo::new(room_id, RoomType::Invited));
|
||||
changes.add_stripped_room(RoomInfo::new(room_id, RoomState::Invited));
|
||||
self.save_changes(&changes).await.unwrap();
|
||||
|
||||
let member_event =
|
||||
|
||||
@@ -63,7 +63,7 @@ use ruma::{
|
||||
pub type BoxStream<T> = Pin<Box<dyn futures_util::Stream<Item = T> + Send>>;
|
||||
|
||||
use crate::{
|
||||
rooms::{RoomInfo, RoomType},
|
||||
rooms::{RoomInfo, RoomState},
|
||||
MinimalRoomMemberEvent, Room, Session, SessionMeta, SessionTokens,
|
||||
};
|
||||
|
||||
@@ -236,10 +236,10 @@ impl Store {
|
||||
pub fn get_room(&self, room_id: &RoomId) -> Option<Room> {
|
||||
self.rooms
|
||||
.get(room_id)
|
||||
.and_then(|r| match r.room_type() {
|
||||
RoomType::Joined => Some(r.clone()),
|
||||
RoomType::Left => Some(r.clone()),
|
||||
RoomType::Invited => self.get_stripped_room(room_id),
|
||||
.and_then(|r| match r.state() {
|
||||
RoomState::Joined => Some(r.clone()),
|
||||
RoomState::Left => Some(r.clone()),
|
||||
RoomState::Invited => self.get_stripped_room(room_id),
|
||||
})
|
||||
.or_else(|| self.get_stripped_room(room_id))
|
||||
}
|
||||
@@ -265,14 +265,14 @@ impl Store {
|
||||
|
||||
self.stripped_rooms
|
||||
.entry(room_id.to_owned())
|
||||
.or_insert_with(|| Room::new(user_id, self.inner.clone(), room_id, RoomType::Invited))
|
||||
.or_insert_with(|| Room::new(user_id, self.inner.clone(), room_id, RoomState::Invited))
|
||||
.clone()
|
||||
}
|
||||
|
||||
/// Lookup the Room for the given RoomId, or create one, if it didn't exist
|
||||
/// yet in the store
|
||||
pub async fn get_or_create_room(&self, room_id: &RoomId, room_type: RoomType) -> Room {
|
||||
if room_type == RoomType::Invited {
|
||||
pub async fn get_or_create_room(&self, room_id: &RoomId, room_type: RoomState) -> Room {
|
||||
if room_type == RoomState::Invited {
|
||||
return self.get_or_create_stripped_room(room_id).await;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ use dashmap::DashMap;
|
||||
use futures_core::Stream;
|
||||
use futures_util::StreamExt;
|
||||
use matrix_sdk_base::{
|
||||
store::DynStateStore, BaseClient, RoomType, SendOutsideWasm, Session, SessionMeta,
|
||||
store::DynStateStore, BaseClient, RoomState, SendOutsideWasm, Session, SessionMeta,
|
||||
SessionTokens, SyncOutsideWasm,
|
||||
};
|
||||
use matrix_sdk_common::{
|
||||
@@ -1684,7 +1684,7 @@ impl Client {
|
||||
let response = self.send(request, None).await?;
|
||||
|
||||
let base_room =
|
||||
self.base_client().get_or_create_room(&response.room_id, RoomType::Joined).await;
|
||||
self.base_client().get_or_create_room(&response.room_id, RoomState::Joined).await;
|
||||
Ok(room::Joined::new(self, base_room).unwrap())
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ pub use async_trait::async_trait;
|
||||
pub use bytes;
|
||||
pub use matrix_sdk_base::{
|
||||
deserialized_responses, DisplayName, Room as BaseRoom, RoomInfo, RoomMember as BaseRoomMember,
|
||||
RoomType, Session, StateChanges, StoreError,
|
||||
RoomState, Session, StateChanges, StoreError,
|
||||
};
|
||||
pub use matrix_sdk_common::*;
|
||||
pub use reqwest;
|
||||
|
||||
@@ -51,7 +51,7 @@ use super::Joined;
|
||||
use crate::{
|
||||
event_handler::{EventHandler, EventHandlerHandle, SyncEvent},
|
||||
media::{MediaFormat, MediaRequest},
|
||||
room::{Left, RoomMember, RoomType},
|
||||
room::{Left, RoomMember, RoomState},
|
||||
BaseRoom, Client, Error, HttpError, HttpResult, Result,
|
||||
};
|
||||
|
||||
@@ -404,7 +404,7 @@ impl Common {
|
||||
}
|
||||
|
||||
fn are_events_visible(&self) -> bool {
|
||||
if let RoomType::Invited = self.inner.room_type() {
|
||||
if let RoomState::Invited = self.inner.state() {
|
||||
return matches!(
|
||||
self.inner.history_visibility(),
|
||||
HistoryVisibility::WorldReadable | HistoryVisibility::Invited
|
||||
|
||||
@@ -5,14 +5,14 @@ use thiserror::Error;
|
||||
use super::{Joined, Left};
|
||||
use crate::{
|
||||
room::{Common, RoomMember},
|
||||
BaseRoom, Client, Error, Result, RoomType,
|
||||
BaseRoom, Client, Error, Result, RoomState,
|
||||
};
|
||||
|
||||
/// A room in the invited state.
|
||||
///
|
||||
/// This struct contains all methods specific to a `Room` with type
|
||||
/// `RoomType::Invited`. Operations may fail once the underlying `Room` changes
|
||||
/// `RoomType`.
|
||||
/// This struct contains all methods specific to a `Room` with
|
||||
/// `RoomState::Invited`. Operations may fail once the underlying `Room` changes
|
||||
/// `RoomState`.
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct Invited {
|
||||
pub(crate) inner: Common,
|
||||
@@ -37,15 +37,15 @@ pub enum InvitationError {
|
||||
}
|
||||
|
||||
impl Invited {
|
||||
/// Create a new `room::Invited` if the underlying `Room` has type
|
||||
/// `RoomType::Invited`.
|
||||
/// Create a new `room::Invited` if the underlying `Room` has
|
||||
/// `RoomState::Invited`.
|
||||
///
|
||||
/// # Arguments
|
||||
/// * `client` - The client used to make requests.
|
||||
///
|
||||
/// * `room` - The underlying room.
|
||||
pub(crate) fn new(client: &Client, room: BaseRoom) -> Option<Self> {
|
||||
if room.room_type() == RoomType::Invited {
|
||||
if room.state() == RoomState::Invited {
|
||||
Some(Self { inner: Common::new(client.clone(), room) })
|
||||
} else {
|
||||
None
|
||||
|
||||
@@ -39,7 +39,7 @@ use crate::{
|
||||
attachment::AttachmentConfig,
|
||||
error::{Error, HttpResult},
|
||||
room::Common,
|
||||
BaseRoom, Client, Result, RoomType,
|
||||
BaseRoom, Client, Result, RoomState,
|
||||
};
|
||||
#[cfg(feature = "image-proc")]
|
||||
use crate::{
|
||||
@@ -52,9 +52,9 @@ const TYPING_NOTICE_RESEND_TIMEOUT: Duration = Duration::from_secs(3);
|
||||
|
||||
/// A room in the joined state.
|
||||
///
|
||||
/// The `JoinedRoom` contains all methods specific to a `Room` with type
|
||||
/// `RoomType::Joined`. Operations may fail once the underlying `Room` changes
|
||||
/// `RoomType`.
|
||||
/// The `JoinedRoom` contains all methods specific to a `Room` with
|
||||
/// `RoomState::Joined`. Operations may fail once the underlying `Room` changes
|
||||
/// `RoomState`.
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct Joined {
|
||||
pub(crate) inner: Common,
|
||||
@@ -69,15 +69,15 @@ impl Deref for Joined {
|
||||
}
|
||||
|
||||
impl Joined {
|
||||
/// Create a new `room::Joined` if the underlying `BaseRoom` has type
|
||||
/// `RoomType::Joined`.
|
||||
/// Create a new `room::Joined` if the underlying `BaseRoom` has
|
||||
/// `RoomState::Joined`.
|
||||
///
|
||||
/// # Arguments
|
||||
/// * `client` - The client used to make requests.
|
||||
///
|
||||
/// * `room` - The underlying room.
|
||||
pub(crate) fn new(client: &Client, room: BaseRoom) -> Option<Self> {
|
||||
if room.room_type() == RoomType::Joined {
|
||||
if room.state() == RoomState::Joined {
|
||||
Some(Self { inner: Common::new(client.clone(), room) })
|
||||
} else {
|
||||
None
|
||||
@@ -432,7 +432,7 @@ impl Joined {
|
||||
/// room anymore!
|
||||
#[instrument(skip_all, parent = &self.client.inner.root_span)]
|
||||
pub async fn sync_up(&self) {
|
||||
while !self.is_synced() && self.room_type() == RoomType::Joined {
|
||||
while !self.is_synced() && self.state() == RoomState::Joined {
|
||||
self.client.inner.sync_beat.listen().wait_timeout(Duration::from_secs(1));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,28 +3,28 @@ use std::ops::Deref;
|
||||
use ruma::api::client::membership::forget_room;
|
||||
|
||||
use super::Joined;
|
||||
use crate::{room::Common, BaseRoom, Client, Result, RoomType};
|
||||
use crate::{room::Common, BaseRoom, Client, Result, RoomState};
|
||||
|
||||
/// A room in the left state.
|
||||
///
|
||||
/// This struct contains all methods specific to a `Room` with type
|
||||
/// `RoomType::Left`. Operations may fail once the underlying `Room` changes
|
||||
/// `RoomType`.
|
||||
/// This struct contains all methods specific to a `Room` with
|
||||
/// `RoomState::Left`. Operations may fail once the underlying `Room` changes
|
||||
/// `RoomState`.
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct Left {
|
||||
pub(crate) inner: Common,
|
||||
}
|
||||
|
||||
impl Left {
|
||||
/// Create a new `room::Left` if the underlying `Room` has type
|
||||
/// `RoomType::Left`.
|
||||
/// Create a new `room::Left` if the underlying `Room` has
|
||||
/// `RoomState::Left`.
|
||||
///
|
||||
/// # Arguments
|
||||
/// * `client` - The client used to make requests.
|
||||
///
|
||||
/// * `room` - The underlying room.
|
||||
pub(crate) fn new(client: &Client, room: BaseRoom) -> Option<Self> {
|
||||
if room.room_type() == RoomType::Left {
|
||||
if room.state() == RoomState::Left {
|
||||
Some(Self { inner: Common::new(client.clone(), room) })
|
||||
} else {
|
||||
None
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
use std::ops::Deref;
|
||||
|
||||
use crate::RoomType;
|
||||
use crate::RoomState;
|
||||
|
||||
mod common;
|
||||
mod invited;
|
||||
@@ -45,10 +45,10 @@ impl Deref for Room {
|
||||
|
||||
impl From<Common> for Room {
|
||||
fn from(room: Common) -> Self {
|
||||
match room.room_type() {
|
||||
RoomType::Joined => Self::Joined(Joined { inner: room }),
|
||||
RoomType::Left => Self::Left(Left { inner: room }),
|
||||
RoomType::Invited => Self::Invited(Invited { inner: room }),
|
||||
match room.state() {
|
||||
RoomState::Joined => Self::Joined(Joined { inner: room }),
|
||||
RoomState::Left => Self::Left(Left { inner: room }),
|
||||
RoomState::Invited => Self::Invited(Invited { inner: room }),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -56,10 +56,10 @@ impl From<Common> for Room {
|
||||
impl From<Joined> for Room {
|
||||
fn from(room: Joined) -> Self {
|
||||
let room = (*room).clone();
|
||||
match room.room_type() {
|
||||
RoomType::Joined => Self::Joined(Joined { inner: room }),
|
||||
RoomType::Left => Self::Left(Left { inner: room }),
|
||||
RoomType::Invited => Self::Invited(Invited { inner: room }),
|
||||
match room.state() {
|
||||
RoomState::Joined => Self::Joined(Joined { inner: room }),
|
||||
RoomState::Left => Self::Left(Left { inner: room }),
|
||||
RoomState::Invited => Self::Invited(Invited { inner: room }),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -67,10 +67,10 @@ impl From<Joined> for Room {
|
||||
impl From<Left> for Room {
|
||||
fn from(room: Left) -> Self {
|
||||
let room = (*room).clone();
|
||||
match room.room_type() {
|
||||
RoomType::Joined => Self::Joined(Joined { inner: room }),
|
||||
RoomType::Left => Self::Left(Left { inner: room }),
|
||||
RoomType::Invited => Self::Invited(Invited { inner: room }),
|
||||
match room.state() {
|
||||
RoomState::Joined => Self::Joined(Joined { inner: room }),
|
||||
RoomState::Left => Self::Left(Left { inner: room }),
|
||||
RoomState::Invited => Self::Invited(Invited { inner: room }),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -78,10 +78,10 @@ impl From<Left> for Room {
|
||||
impl From<Invited> for Room {
|
||||
fn from(room: Invited) -> Self {
|
||||
let room = (*room).clone();
|
||||
match room.room_type() {
|
||||
RoomType::Joined => Self::Joined(Joined { inner: room }),
|
||||
RoomType::Left => Self::Left(Left { inner: room }),
|
||||
RoomType::Invited => Self::Invited(Invited { inner: room }),
|
||||
match room.state() {
|
||||
RoomState::Joined => Self::Joined(Joined { inner: room }),
|
||||
RoomState::Left => Self::Left(Left { inner: room }),
|
||||
RoomState::Invited => Self::Invited(Invited { inner: room }),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ use matrix_sdk::{
|
||||
api::client::room::create_room::v3::Request as CreateRoomRequest,
|
||||
events::room::member::{MembershipState, StrippedRoomMemberEvent},
|
||||
},
|
||||
Client, RoomType,
|
||||
Client, RoomState,
|
||||
};
|
||||
use tokio::sync::Notify;
|
||||
|
||||
@@ -136,7 +136,7 @@ async fn signal_on_invite(
|
||||
return;
|
||||
}
|
||||
|
||||
if room.room_type() != RoomType::Invited {
|
||||
if room.state() != RoomState::Invited {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user