matrix_sdk/sliding_sync/list/
sticky.rs1use ruma::{api::client::sync::sync_events::v5 as http, events::StateEventType};
2
3use crate::sliding_sync::sticky_parameters::StickyData;
4
5#[derive(Debug)]
8pub(super) struct SlidingSyncListStickyParameters {
9 required_state: Vec<(StateEventType, String)>,
11
12 include_heroes: Option<bool>,
15
16 filters: Option<http::request::ListFilters>,
18}
19
20impl SlidingSyncListStickyParameters {
21 pub fn new(
22 required_state: Vec<(StateEventType, String)>,
23 include_heroes: Option<bool>,
24 filters: Option<http::request::ListFilters>,
25 ) -> Self {
26 Self { required_state, include_heroes, filters }
29 }
30}
31
32impl StickyData for SlidingSyncListStickyParameters {
33 type Request = http::request::List;
34
35 fn apply(&self, request: &mut Self::Request) {
36 request.room_details.required_state = self.required_state.to_vec();
37 request.include_heroes = self.include_heroes;
38 request.filters = self.filters.clone();
39 }
40}