diff --git a/crates/matrix-sdk/src/sliding_sync/list.rs b/crates/matrix-sdk/src/sliding_sync/list.rs index 3110e9f0b..9025be9e3 100644 --- a/crates/matrix-sdk/src/sliding_sync/list.rs +++ b/crates/matrix-sdk/src/sliding_sync/list.rs @@ -64,7 +64,6 @@ pub struct SlidingSyncList { /// The maximum number of timeline events to query for pub timeline_limit: Arc>>>, - // ----- Public state /// Name of this view to easily recognize them pub name: String, @@ -90,41 +89,6 @@ pub struct SlidingSyncList { is_cold: Arc, } -#[derive(Serialize, Deserialize)] -pub(super) struct FrozenSlidingSyncList { - #[serde(default, skip_serializing_if = "Option::is_none")] - pub(super) rooms_count: Option, - #[serde(default, skip_serializing_if = "Vector::is_empty")] - pub(super) rooms_list: Vector, - #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] - pub(super) rooms: BTreeMap, -} - -impl FrozenSlidingSyncList { - pub(super) fn freeze( - source_view: &SlidingSyncList, - rooms_map: &BTreeMap, - ) -> Self { - let mut rooms = BTreeMap::new(); - let mut rooms_list = Vector::new(); - for entry in source_view.rooms_list.read().unwrap().iter() { - match entry { - RoomListEntry::Filled(o) | RoomListEntry::Invalidated(o) => { - rooms.insert(o.clone(), rooms_map.get(o).expect("rooms always exists").into()); - } - _ => {} - }; - - rooms_list.push_back(entry.freeze()); - } - FrozenSlidingSyncList { - rooms_count: **source_view.rooms_count.read().unwrap(), - rooms_list, - rooms, - } - } -} - impl SlidingSyncList { pub(crate) fn set_from_cold( &mut self, @@ -397,6 +361,41 @@ impl SlidingSyncList { } } +#[derive(Serialize, Deserialize)] +pub(super) struct FrozenSlidingSyncList { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub(super) rooms_count: Option, + #[serde(default, skip_serializing_if = "Vector::is_empty")] + pub(super) rooms_list: Vector, + #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] + pub(super) rooms: BTreeMap, +} + +impl FrozenSlidingSyncList { + pub(super) fn freeze( + source_view: &SlidingSyncList, + rooms_map: &BTreeMap, + ) -> Self { + let mut rooms = BTreeMap::new(); + let mut rooms_list = Vector::new(); + for entry in source_view.rooms_list.read().unwrap().iter() { + match entry { + RoomListEntry::Filled(o) | RoomListEntry::Invalidated(o) => { + rooms.insert(o.clone(), rooms_map.get(o).expect("rooms always exists").into()); + } + _ => {} + }; + + rooms_list.push_back(entry.freeze()); + } + FrozenSlidingSyncList { + rooms_count: **source_view.rooms_count.read().unwrap(), + rooms_list, + rooms, + } + } +} + /// the default name for the full sync view pub const FULL_SYNC_VIEW_NAME: &str = "full-sync";