From fa6d18b55fe398286a3fe8b88ebf2fab932ebda6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20Mart=C3=ADn?= Date: Wed, 5 Nov 2025 14:00:07 +0100 Subject: [PATCH] refactor(sdk): Make the deserialization of the ignored users happen in parallel too --- crates/matrix-sdk-base/src/room/members.rs | 24 ++++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/crates/matrix-sdk-base/src/room/members.rs b/crates/matrix-sdk-base/src/room/members.rs index 92acbd534..fa7f290cd 100644 --- a/crates/matrix-sdk-base/src/room/members.rs +++ b/crates/matrix-sdk-base/src/room/members.rs @@ -176,26 +176,28 @@ impl Room { display_names: &'a [DisplayName], ) -> StoreResult> { let max_power_level = self.max_power_level(); - let power_levels = self.power_levels_or_default(); + let power_levels = async { Ok(self.power_levels_or_default().await) }; let users_display_names = self.store.get_users_with_display_names(self.room_id(), display_names); - let raw_ignored_users = - self.store.get_account_data_event_static::(); + let ignored_users = async { + Ok(self + .store + .get_account_data_event_static::() + .await? + .map(|c| c.deserialize()) + .transpose()? + .map(|e| e.content.ignored_users.into_keys().collect())) + }; - let (power_levels, users_display_names, raw_ignored_users) = - future::join3(power_levels, users_display_names, raw_ignored_users).await; - - let ignored_users = raw_ignored_users? - .map(|c| c.deserialize()) - .transpose()? - .map(|e| e.content.ignored_users.into_keys().collect()); + let (power_levels, users_display_names, ignored_users) = + future::try_join3(power_levels, users_display_names, ignored_users).await?; Ok(MemberRoomInfo { power_levels: power_levels.into(), max_power_level, - users_display_names: users_display_names?, + users_display_names, ignored_users, }) }