From b2b9b5fa120bc24277f7d4530d635216d4c58aee Mon Sep 17 00:00:00 2001 From: Mauro Romito Date: Thu, 29 Feb 2024 14:29:03 +0100 Subject: [PATCH] feat(bindings): reverted some code from ffi --- .../src/room_directory_search.rs | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/bindings/matrix-sdk-ffi/src/room_directory_search.rs b/bindings/matrix-sdk-ffi/src/room_directory_search.rs index c566a9001..35a5629ec 100644 --- a/bindings/matrix-sdk-ffi/src/room_directory_search.rs +++ b/bindings/matrix-sdk-ffi/src/room_directory_search.rs @@ -91,17 +91,26 @@ impl RoomDirectorySearch { Ok(()) } - pub async fn state(&self, listener: Box) -> TaskHandle { + pub async fn loaded_pages(&self) -> Result { + let inner = self.inner.read().await; + Ok(inner.loaded_pages() as u32) + } + + pub async fn is_at_last_page(&self) -> Result { + let inner = self.inner.read().await; + Ok(inner.is_at_last_page()) + } + + pub async fn results( + &self, + listener: Box, + ) -> TaskHandle { let (initial_values, mut stream) = self.inner.read().await.results(); TaskHandle::new(RUNTIME.spawn(async move { - listener.on_update(RoomDirectorySearchState { - updates: vec![RoomDirectorySearchEntryUpdate::Reset { - values: initial_values.into_iter().map(Into::into).collect(), - }], - is_at_last_page: self.inner.read().await.is_at_last_page(), - loaded_pages: self.inner.read().await.loaded_pages() as u32, - }); + listener.on_update(vec![RoomDirectorySearchEntryUpdate::Reset { + values: initial_values.into_iter().map(Into::into).collect(), + }]); while let Some(diffs) = stream.next().await { listener.on_update(diffs.into_iter().map(|diff| diff.into()).collect()); @@ -158,14 +167,7 @@ impl From> } } -#[derive(uniffi::Record)] -struct RoomDirectorySearchState { - pub updates: Vec, - pub is_at_last_page: bool, - pub loaded_pages: u32, -} - #[uniffi::export(callback_interface)] pub trait RoomDirectorySearchEntriesListener: Send + Sync + Debug { - fn on_update(&self, room_entries_update: RoomDirectorySearchState); + fn on_update(&self, room_entries_update: Vec); }