From 1c175df6b3d80fc83ff8b5af469ea97b03293d25 Mon Sep 17 00:00:00 2001 From: Ivan Enderlin Date: Wed, 17 May 2023 16:37:11 +0200 Subject: [PATCH] chore(sdk): Move `From` impl on `SSListRequestGenerator` as proper constructor. --- .../src/sliding_sync/list/builder.rs | 6 +- .../sliding_sync/list/request_generator.rs | 64 +++++++++---------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/crates/matrix-sdk/src/sliding_sync/list/builder.rs b/crates/matrix-sdk/src/sliding_sync/list/builder.rs index d385502fb..f3fc1154d 100644 --- a/crates/matrix-sdk/src/sliding_sync/list/builder.rs +++ b/crates/matrix-sdk/src/sliding_sync/list/builder.rs @@ -16,7 +16,7 @@ use tokio::sync::mpsc::Sender; use super::{ super::SlidingSyncInternalMessage, Bound, SlidingSyncList, SlidingSyncListCachePolicy, - SlidingSyncListInner, SlidingSyncMode, SlidingSyncState, + SlidingSyncListInner, SlidingSyncListRequestGenerator, SlidingSyncMode, SlidingSyncState, }; use crate::{ sliding_sync::{cache::restore_sliding_sync_list, FrozenSlidingSyncRoom}, @@ -212,7 +212,9 @@ impl SlidingSyncListBuilder { cache_policy: self.cache_policy, // Computed from the builder. - request_generator: StdRwLock::new(self.sync_mode.into()), + request_generator: StdRwLock::new(SlidingSyncListRequestGenerator::new( + self.sync_mode, + )), // Values read from deserialization, or that are still equal to the default values // otherwise. diff --git a/crates/matrix-sdk/src/sliding_sync/list/request_generator.rs b/crates/matrix-sdk/src/sliding_sync/list/request_generator.rs index c6e1f75bd..88dd80c00 100644 --- a/crates/matrix-sdk/src/sliding_sync/list/request_generator.rs +++ b/crates/matrix-sdk/src/sliding_sync/list/request_generator.rs @@ -77,6 +77,34 @@ pub(in super::super) struct SlidingSyncListRequestGenerator { } impl SlidingSyncListRequestGenerator { + pub(super) fn new(sync_mode: SlidingSyncMode) -> Self { + match sync_mode { + SlidingSyncMode::Paging { batch_size, maximum_number_of_rooms_to_fetch } => Self { + ranges: Vec::new(), + kind: SlidingSyncListRequestGeneratorKind::Paging { + batch_size, + maximum_number_of_rooms_to_fetch, + number_of_fetched_rooms: 0, + fully_loaded: false, + }, + }, + + SlidingSyncMode::Growing { batch_size, maximum_number_of_rooms_to_fetch } => Self { + ranges: Vec::new(), + kind: SlidingSyncListRequestGeneratorKind::Growing { + batch_size, + maximum_number_of_rooms_to_fetch, + number_of_fetched_rooms: 0, + fully_loaded: false, + }, + }, + + SlidingSyncMode::Selective => { + Self { ranges: Vec::new(), kind: SlidingSyncListRequestGeneratorKind::Selective } + } + } + } + pub(super) fn reset(&mut self) { // Reset the ranges. self.ranges.clear(); @@ -111,36 +139,6 @@ impl SlidingSyncListRequestGenerator { } } -impl From for SlidingSyncListRequestGenerator { - fn from(sync_mode: SlidingSyncMode) -> Self { - match sync_mode { - SlidingSyncMode::Paging { batch_size, maximum_number_of_rooms_to_fetch } => Self { - ranges: Vec::new(), - kind: SlidingSyncListRequestGeneratorKind::Paging { - batch_size, - maximum_number_of_rooms_to_fetch, - number_of_fetched_rooms: 0, - fully_loaded: false, - }, - }, - - SlidingSyncMode::Growing { batch_size, maximum_number_of_rooms_to_fetch } => Self { - ranges: Vec::new(), - kind: SlidingSyncListRequestGeneratorKind::Growing { - batch_size, - maximum_number_of_rooms_to_fetch, - number_of_fetched_rooms: 0, - fully_loaded: false, - }, - }, - - SlidingSyncMode::Selective => { - Self { ranges: Vec::new(), kind: SlidingSyncListRequestGeneratorKind::Selective } - } - } - } -} - pub(super) fn create_range( start: u32, desired_size: u32, @@ -234,7 +232,7 @@ mod tests { #[test] fn test_request_generator_selective_from_sync_mode() { let sync_mode = SlidingSyncMode::new_selective(); - let request_generator = SlidingSyncListRequestGenerator::from(sync_mode); + let request_generator = SlidingSyncListRequestGenerator::new(sync_mode); assert!(request_generator.ranges.is_empty()); assert_eq!(request_generator.kind, SlidingSyncListRequestGeneratorKind::Selective); @@ -243,7 +241,7 @@ mod tests { #[test] fn test_request_generator_paging_from_sync_mode() { let sync_mode = SlidingSyncMode::new_paging(1, Some(2)); - let request_generator = SlidingSyncListRequestGenerator::from(sync_mode); + let request_generator = SlidingSyncListRequestGenerator::new(sync_mode); assert!(request_generator.ranges.is_empty()); assert_eq!( @@ -260,7 +258,7 @@ mod tests { #[test] fn test_request_generator_growing_from_sync_mode() { let sync_mode = SlidingSyncMode::new_growing(1, Some(2)); - let request_generator = SlidingSyncListRequestGenerator::from(sync_mode); + let request_generator = SlidingSyncListRequestGenerator::new(sync_mode); assert!(request_generator.ranges.is_empty()); assert_eq!(