From 7706b0096b5aa63e34ed3de13c91bb5165a057bc Mon Sep 17 00:00:00 2001 From: Ivan Enderlin Date: Wed, 24 May 2023 11:15:39 +0200 Subject: [PATCH] !foo --- crates/matrix-sdk-ui/Cargo.toml | 2 +- crates/matrix-sdk-ui/src/roomlist/mod.rs | 33 ++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/crates/matrix-sdk-ui/Cargo.toml b/crates/matrix-sdk-ui/Cargo.toml index bbd20f7a5..af767afe6 100644 --- a/crates/matrix-sdk-ui/Cargo.toml +++ b/crates/matrix-sdk-ui/Cargo.toml @@ -4,7 +4,7 @@ version = "0.6.0" edition = "2021" [features] -default = ["e2e-encryption", "native-tls"] +default = ["e2e-encryption", "native-tls", "experimental-roomlist"] e2e-encryption = ["matrix-sdk/e2e-encryption"] diff --git a/crates/matrix-sdk-ui/src/roomlist/mod.rs b/crates/matrix-sdk-ui/src/roomlist/mod.rs index e69de29bb..7dd95a3cd 100644 --- a/crates/matrix-sdk-ui/src/roomlist/mod.rs +++ b/crates/matrix-sdk-ui/src/roomlist/mod.rs @@ -0,0 +1,33 @@ +//! `RoomList` API. + +use matrix_sdk::{Client, Result, SlidingSync, SlidingSyncList}; + +#[derive(Debug)] +pub struct RoomList { + sliding_sync: SlidingSync, +} + +impl RoomList { + pub async fn new(client: Client) -> Result { + Ok(Self { + sliding_sync: client + .sliding_sync() + .storage_key(Some("matrix-sdk-ui-roomlist".to_string())) + .add_cached_list(SlidingSyncList::builder("all_rooms")) + .await? + .add_list(SlidingSyncList::builder("visible_rooms")) + .build() + .await?, + }) + } + + pub fn sync(&self) {} +} + +#[cfg(test)] +mod tests { + #[tokio::test] + async fn test_has_two_lists() { + // let + } +}