matrix_sdk/sliding_sync/list/
frozen.rs

1use serde::{Deserialize, Serialize};
2
3use super::SlidingSyncList;
4
5#[derive(Debug, Serialize, Deserialize)]
6pub struct FrozenSlidingSyncList {
7    #[serde(default, rename = "rooms_count", skip_serializing_if = "Option::is_none")]
8    pub maximum_number_of_rooms: Option<u32>,
9}
10
11impl FrozenSlidingSyncList {
12    pub(in super::super) fn freeze(source_list: &SlidingSyncList) -> Self {
13        FrozenSlidingSyncList { maximum_number_of_rooms: source_list.maximum_number_of_rooms() }
14    }
15}
16
17#[cfg(test)]
18mod tests {
19    use serde_json::json;
20
21    use super::FrozenSlidingSyncList;
22
23    #[test]
24    fn test_frozen_sliding_sync_list_serialization() {
25        assert_eq!(
26            serde_json::to_value(&FrozenSlidingSyncList { maximum_number_of_rooms: Some(42) })
27                .unwrap(),
28            json!({
29                "rooms_count": 42,
30            })
31        );
32    }
33}