diff --git a/matrix_sdk/src/client.rs b/matrix_sdk/src/client.rs index 0690bea3..75bc0ed5 100644 --- a/matrix_sdk/src/client.rs +++ b/matrix_sdk/src/client.rs @@ -40,7 +40,9 @@ use zeroize::Zeroizing; use tracing::{debug, warn}; use tracing::{error, info, instrument}; -use matrix_sdk_base::{responses::SyncResponse, BaseClient, BaseClientConfig, Room, Session}; +use matrix_sdk_base::{ + responses::SyncResponse, BaseClient, BaseClientConfig, Room, Session, Store, +}; #[cfg(feature = "encryption")] use matrix_sdk_base::crypto::{ @@ -504,6 +506,11 @@ impl Client { Ok(response.avatar_url) } + /// Get a reference to the store. + pub fn store(&self) -> &Store { + self.base_client.store() + } + /// Sets the mxc avatar url of the client's owner. The avatar gets unset if `url` is `None`. pub async fn set_avatar_url(&self, url: Option<&str>) -> Result<()> { let user_id = self.user_id().await.ok_or(Error::AuthenticationRequired)?; diff --git a/matrix_sdk/src/lib.rs b/matrix_sdk/src/lib.rs index 405c6340..3146bd8c 100644 --- a/matrix_sdk/src/lib.rs +++ b/matrix_sdk/src/lib.rs @@ -66,7 +66,7 @@ compile_error!("only one of 'native-tls' or 'rustls-tls' features can be enabled #[cfg(feature = "encryption")] #[cfg_attr(feature = "docs", doc(cfg(encryption)))] pub use matrix_sdk_base::crypto::LocalTrust; -pub use matrix_sdk_base::{Error as BaseError, Room, RoomMember, Session}; +pub use matrix_sdk_base::{Error as BaseError, Room, RoomInfo, RoomMember, Session}; pub use matrix_sdk_common::*; pub use reqwest; diff --git a/matrix_sdk_base/src/client.rs b/matrix_sdk_base/src/client.rs index d254627a..3d6385d0 100644 --- a/matrix_sdk_base/src/client.rs +++ b/matrix_sdk_base/src/client.rs @@ -32,7 +32,7 @@ use matrix_sdk_common::{ room::member::MemberEventContent, AnyBasicEvent, AnyStrippedStateEvent, AnySyncRoomEvent, AnySyncStateEvent, StateEvent, SyncStateEvent, }, - identifiers::{RoomId, UserId, room_id}, + identifiers::{room_id, RoomId, UserId}, locks::RwLock, Raw, }; @@ -350,6 +350,11 @@ impl BaseClient { &self.session } + /// Get a reference to the store. + pub fn store(&self) -> &Store { + &self.store + } + /// Is the client logged in. pub async fn logged_in(&self) -> bool { // TODO turn this into a atomic bool so this method doesn't need to be diff --git a/matrix_sdk_base/src/lib.rs b/matrix_sdk_base/src/lib.rs index d68e54d7..1f5965ed 100644 --- a/matrix_sdk_base/src/lib.rs +++ b/matrix_sdk_base/src/lib.rs @@ -49,7 +49,7 @@ mod rooms; mod session; mod store; -pub use rooms::{RoomInfo, Room, RoomMember}; +pub use rooms::{Room, RoomInfo, RoomMember}; pub use store::Store; pub use client::{BaseClient, BaseClientConfig, RoomState, RoomStateType}; diff --git a/matrix_sdk_base/src/rooms/mod.rs b/matrix_sdk_base/src/rooms/mod.rs index 70ef27a5..948cda4a 100644 --- a/matrix_sdk_base/src/rooms/mod.rs +++ b/matrix_sdk_base/src/rooms/mod.rs @@ -1,5 +1,5 @@ mod joined; mod members; -pub use joined::{RoomInfo, Room, RoomType}; +pub use joined::{Room, RoomInfo, RoomType}; pub use members::RoomMember; diff --git a/matrix_sdk_base/src/store.rs b/matrix_sdk_base/src/store.rs index 2959f084..3cc0fcbe 100644 --- a/matrix_sdk_base/src/store.rs +++ b/matrix_sdk_base/src/store.rs @@ -337,7 +337,9 @@ impl Store { pub async fn get_room_infos(&self) -> impl Stream { stream::iter( - self.room_summaries.iter().map(|r| serde_json::from_slice(&r.unwrap().1).unwrap()) + self.room_summaries + .iter() + .map(|r| serde_json::from_slice(&r.unwrap().1).unwrap()), ) }