base: Move the AllRooms out of the state_store file.
parent
f1d12ff1f3
commit
e9b48b73d4
|
@ -13,17 +13,18 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
pub mod state_store;
|
||||
pub use state_store::AllRooms;
|
||||
mod state_store;
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
pub use state_store::JsonStore;
|
||||
|
||||
use crate::client::{BaseClient, Token};
|
||||
use crate::events::push_rules::Ruleset;
|
||||
use crate::identifiers::UserId;
|
||||
use crate::identifiers::{RoomId, UserId};
|
||||
use crate::{Result, Room, RoomState, Session};
|
||||
|
||||
/// `ClientState` holds all the information to restore a `BaseClient`
|
||||
|
@ -64,6 +65,18 @@ impl ClientState {
|
|||
}
|
||||
}
|
||||
|
||||
/// `JsonStore::load_all_rooms` returns `AllRooms`.
|
||||
///
|
||||
/// `AllRooms` is made of the `joined`, `invited` and `left` room maps.
|
||||
pub struct AllRooms {
|
||||
/// The joined room mapping of `RoomId` to `Room`.
|
||||
pub joined: HashMap<RoomId, Room>,
|
||||
/// The invited room mapping of `RoomId` to `Room`.
|
||||
pub invited: HashMap<RoomId, Room>,
|
||||
/// The left room mapping of `RoomId` to `Room`.
|
||||
pub left: HashMap<RoomId, Room>,
|
||||
}
|
||||
|
||||
/// Abstraction around the data store to avoid unnecessary request on client initialization.
|
||||
#[async_trait::async_trait]
|
||||
pub trait StateStore: Send + Sync {
|
||||
|
|
|
@ -10,22 +10,9 @@ use matrix_sdk_common::locks::RwLock;
|
|||
use tokio::fs as async_fs;
|
||||
use tokio::io::AsyncWriteExt;
|
||||
|
||||
use super::{ClientState, StateStore};
|
||||
use crate::identifiers::RoomId;
|
||||
use super::{AllRooms, ClientState, StateStore};
|
||||
use crate::{Error, Result, Room, RoomState, Session};
|
||||
|
||||
/// `JsonStore::load_all_rooms` returns `AllRooms`.
|
||||
///
|
||||
/// `AllRooms` is made of the `joined`, `invited` and `left` room maps.
|
||||
pub struct AllRooms {
|
||||
/// The joined room mapping of `RoomId` to `Room`.
|
||||
pub joined: HashMap<RoomId, Room>,
|
||||
/// The invited room mapping of `RoomId` to `Room`.
|
||||
pub invited: HashMap<RoomId, Room>,
|
||||
/// The left room mapping of `RoomId` to `Room`.
|
||||
pub left: HashMap<RoomId, Room>,
|
||||
}
|
||||
|
||||
/// A default `StateStore` implementation that serializes state as json
|
||||
/// and saves it to disk.
|
||||
///
|
||||
|
|
Loading…
Reference in New Issue