use ruma::{api::client::sync::sync_events::v5 as http, events::StateEventType};
use crate::sliding_sync::sticky_parameters::StickyData;
#[derive(Debug)]
pub(super) struct SlidingSyncListStickyParameters {
required_state: Vec<(StateEventType, String)>,
filters: Option<http::request::ListFilters>,
}
impl SlidingSyncListStickyParameters {
pub fn new(
required_state: Vec<(StateEventType, String)>,
filters: Option<http::request::ListFilters>,
) -> Self {
Self { required_state, filters }
}
}
impl StickyData for SlidingSyncListStickyParameters {
type Request = http::request::List;
fn apply(&self, request: &mut Self::Request) {
request.room_details.required_state = self.required_state.to_vec();
request.filters = self.filters.clone();
}
}