From ee777bc287df83856a5924103ee75af64c4be0dd Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Sat, 4 Oct 2025 06:08:35 +0000 Subject: [PATCH] Rename user rooms iterations which have state vectors as values. Signed-off-by: Jason Volk --- src/admin/query/room_state_cache.rs | 4 +-- src/api/client/sync/v3.rs | 6 ++-- src/api/client/sync/v5.rs | 4 +-- src/service/deactivate/mod.rs | 4 +-- src/service/rooms/state_cache/mod.rs | 44 ++++++++++++++-------------- 5 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/admin/query/room_state_cache.rs b/src/admin/query/room_state_cache.rs index 95bcff92..6a0196e9 100644 --- a/src/admin/query/room_state_cache.rs +++ b/src/admin/query/room_state_cache.rs @@ -282,7 +282,7 @@ pub(super) async fn process(subcommand: RoomStateCacheCommand, context: &Context let timer = tokio::time::Instant::now(); let results: Vec<_> = services .state_cache - .rooms_invited(&user_id) + .rooms_invited_state(&user_id) .collect() .await; let query_time = timer.elapsed(); @@ -297,7 +297,7 @@ pub(super) async fn process(subcommand: RoomStateCacheCommand, context: &Context let timer = tokio::time::Instant::now(); let results: Vec<_> = services .state_cache - .rooms_left(&user_id) + .rooms_left_state(&user_id) .collect() .await; let query_time = timer.elapsed(); diff --git a/src/api/client/sync/v3.rs b/src/api/client/sync/v3.rs index 09267806..c00a6ffd 100644 --- a/src/api/client/sync/v3.rs +++ b/src/api/client/sync/v3.rs @@ -279,7 +279,7 @@ async fn build_sync_events( let left_rooms = services .state_cache - .rooms_left(sender_user) + .rooms_left_state(sender_user) .ready_filter(|(room_id, _)| filter.room.matches(room_id)) .broad_filter_map(|(room_id, _)| { handle_left_room( @@ -299,7 +299,7 @@ async fn build_sync_events( let invited_rooms = services .state_cache - .rooms_invited(sender_user) + .rooms_invited_state(sender_user) .ready_filter(|(room_id, _)| filter.room.matches(room_id)) .fold_default(async |mut invited_rooms: BTreeMap<_, _>, (room_id, invite_state)| { let invite_count = services @@ -323,7 +323,7 @@ async fn build_sync_events( let knocked_rooms = services .state_cache - .rooms_knocked(sender_user) + .rooms_knocked_state(sender_user) .ready_filter(|(room_id, _)| filter.room.matches(room_id)) .fold_default(async |mut knocked_rooms: BTreeMap<_, _>, (room_id, knock_state)| { let knock_count = services diff --git a/src/api/client/sync/v5.rs b/src/api/client/sync/v5.rs index c61987f9..5c25009e 100644 --- a/src/api/client/sync/v5.rs +++ b/src/api/client/sync/v5.rs @@ -119,13 +119,13 @@ pub(crate) async fn sync_events_v5_route( let all_invited_rooms = services .state_cache - .rooms_invited(sender_user) + .rooms_invited_state(sender_user) .map(|r| r.0) .collect::>(); let all_knocked_rooms = services .state_cache - .rooms_knocked(sender_user) + .rooms_knocked_state(sender_user) .map(|r| r.0) .collect::>(); diff --git a/src/service/deactivate/mod.rs b/src/service/deactivate/mod.rs index 88443d26..48d7cfb7 100644 --- a/src/service/deactivate/mod.rs +++ b/src/service/deactivate/mod.rs @@ -123,13 +123,13 @@ impl Service { let rooms_invited = self .services .state_cache - .rooms_invited(user_id) + .rooms_invited_state(user_id) .map(|(r, _)| r); let rooms_knocked = self .services .state_cache - .rooms_knocked(user_id) + .rooms_knocked_state(user_id) .map(|(r, _)| r); let all_rooms: Vec<_> = rooms_joined diff --git a/src/service/rooms/state_cache/mod.rs b/src/service/rooms/state_cache/mod.rs index b0734b95..377a94ec 100644 --- a/src/service/rooms/state_cache/mod.rs +++ b/src/service/rooms/state_cache/mod.rs @@ -399,7 +399,7 @@ pub fn rooms_joined<'a>( /// Returns an iterator over all rooms a user was invited to. #[implement(Service)] #[tracing::instrument(skip(self), level = "debug")] -pub fn rooms_invited<'a>( +pub fn rooms_invited_state<'a>( &'a self, user_id: &'a UserId, ) -> impl Stream + Send + 'a { @@ -419,7 +419,7 @@ pub fn rooms_invited<'a>( /// Returns an iterator over all rooms a user is currently knocking. #[implement(Service)] #[tracing::instrument(skip(self), level = "trace")] -pub fn rooms_knocked<'a>( +pub fn rooms_knocked_state<'a>( &'a self, user_id: &'a UserId, ) -> impl Stream + Send + 'a { @@ -436,6 +436,26 @@ pub fn rooms_knocked<'a>( .ignore_err() } +/// Returns an iterator over all rooms a user left. +#[implement(Service)] +#[tracing::instrument(skip(self), level = "debug")] +pub fn rooms_left_state<'a>( + &'a self, + user_id: &'a UserId, +) -> impl Stream + Send + 'a { + type KeyVal<'a> = (Key<'a>, Raw>>); + type Key<'a> = (&'a UserId, &'a RoomId); + + let prefix = (user_id, Interfix); + self.db + .userroomid_leftstate + .stream_prefix(&prefix) + .ignore_err() + .map(|((_, room_id), state): KeyVal<'_>| (room_id.to_owned(), state)) + .map(|(room_id, state)| Ok((room_id, state.deserialize_as_unchecked()?))) + .ignore_err() +} + #[implement(Service)] #[tracing::instrument(skip(self), level = "trace")] pub async fn invite_state( @@ -490,26 +510,6 @@ pub async fn left_state( }) } -/// Returns an iterator over all rooms a user left. -#[implement(Service)] -#[tracing::instrument(skip(self), level = "debug")] -pub fn rooms_left<'a>( - &'a self, - user_id: &'a UserId, -) -> impl Stream + Send + 'a { - type KeyVal<'a> = (Key<'a>, Raw>>); - type Key<'a> = (&'a UserId, &'a RoomId); - - let prefix = (user_id, Interfix); - self.db - .userroomid_leftstate - .stream_prefix(&prefix) - .ignore_err() - .map(|((_, room_id), state): KeyVal<'_>| (room_id.to_owned(), state)) - .map(|(room_id, state)| Ok((room_id, state.deserialize_as_unchecked()?))) - .ignore_err() -} - #[implement(Service)] #[tracing::instrument(skip(self), level = "trace")] pub async fn user_membership(