Skip to content

Commit fa6d18b

Browse files
committed
refactor(sdk): Make the deserialization of the ignored users happen in parallel too
1 parent 17de97e commit fa6d18b

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

crates/matrix-sdk-base/src/room/members.rs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -176,26 +176,28 @@ impl Room {
176176
display_names: &'a [DisplayName],
177177
) -> StoreResult<MemberRoomInfo<'a>> {
178178
let max_power_level = self.max_power_level();
179-
let power_levels = self.power_levels_or_default();
179+
let power_levels = async { Ok(self.power_levels_or_default().await) };
180180

181181
let users_display_names =
182182
self.store.get_users_with_display_names(self.room_id(), display_names);
183183

184-
let raw_ignored_users =
185-
self.store.get_account_data_event_static::<IgnoredUserListEventContent>();
186-
187-
let (power_levels, users_display_names, raw_ignored_users) =
188-
future::join3(power_levels, users_display_names, raw_ignored_users).await;
184+
let ignored_users = async {
185+
Ok(self
186+
.store
187+
.get_account_data_event_static::<IgnoredUserListEventContent>()
188+
.await?
189+
.map(|c| c.deserialize())
190+
.transpose()?
191+
.map(|e| e.content.ignored_users.into_keys().collect()))
192+
};
189193

190-
let ignored_users = raw_ignored_users?
191-
.map(|c| c.deserialize())
192-
.transpose()?
193-
.map(|e| e.content.ignored_users.into_keys().collect());
194+
let (power_levels, users_display_names, ignored_users) =
195+
future::try_join3(power_levels, users_display_names, ignored_users).await?;
194196

195197
Ok(MemberRoomInfo {
196198
power_levels: power_levels.into(),
197199
max_power_level,
198-
users_display_names: users_display_names?,
200+
users_display_names,
199201
ignored_users,
200202
})
201203
}

0 commit comments

Comments
 (0)