From 901024bccc1900fd6fdaea26e699263c7ce70f0a Mon Sep 17 00:00:00 2001 From: Benjamin Bouvier Date: Thu, 28 Mar 2024 16:59:42 +0100 Subject: [PATCH] base: remove cognitive overload when passing parameters The `MemberInfo` struct only existed to regroup parameters, so let's pass individual parameters instead. One less data structure is good for the cognitive load. --- crates/matrix-sdk-base/src/rooms/members.rs | 15 ++++++--------- crates/matrix-sdk-base/src/rooms/normal.rs | 12 ++++-------- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/crates/matrix-sdk-base/src/rooms/members.rs b/crates/matrix-sdk-base/src/rooms/members.rs index 9c369e0ed..b44778fd6 100644 --- a/crates/matrix-sdk-base/src/rooms/members.rs +++ b/crates/matrix-sdk-base/src/rooms/members.rs @@ -52,8 +52,12 @@ pub struct RoomMember { } impl RoomMember { - pub(crate) fn from_parts(member_info: MemberInfo, room_info: &MemberRoomInfo<'_>) -> Self { - let MemberInfo { event, profile, presence } = member_info; + pub(crate) fn from_parts( + event: MemberEvent, + profile: Option, + presence: Option, + room_info: &MemberRoomInfo<'_>, + ) -> Self { let MemberRoomInfo { power_levels, max_power_level, @@ -231,13 +235,6 @@ impl RoomMember { } } -// Information about a room member. -pub(crate) struct MemberInfo { - pub event: MemberEvent, - pub(crate) profile: Option, - pub(crate) presence: Option, -} - // Information about a the room a member is in. pub(crate) struct MemberRoomInfo<'a> { pub(crate) power_levels: Arc>>, diff --git a/crates/matrix-sdk-base/src/rooms/normal.rs b/crates/matrix-sdk-base/src/rooms/normal.rs index 86aebd668..78ed4e82b 100644 --- a/crates/matrix-sdk-base/src/rooms/normal.rs +++ b/crates/matrix-sdk-base/src/rooms/normal.rs @@ -58,8 +58,8 @@ use tokio::sync::broadcast; use tracing::{debug, field::debug, info, instrument, warn}; use super::{ - members::{MemberInfo, MemberRoomInfo}, - BaseRoomInfo, DisplayName, RoomCreateWithCreatorEventContent, RoomMember, RoomNotableTags, + members::MemberRoomInfo, BaseRoomInfo, DisplayName, RoomCreateWithCreatorEventContent, + RoomMember, RoomNotableTags, }; #[cfg(feature = "experimental-sliding-sync")] use crate::latest_event::LatestEvent; @@ -547,10 +547,7 @@ impl Room { for event in member_events { let profile = profiles.remove(event.user_id()); let presence = presences.remove(event.user_id()); - - let member_info = MemberInfo { event, profile, presence }; - - members.push(RoomMember::from_parts(member_info, &room_info)) + members.push(RoomMember::from_parts(event, profile, presence, &room_info)) } Ok(members) @@ -697,8 +694,7 @@ impl Room { let display_names = [event.display_name().to_owned()]; let room_info = self.member_room_info(&display_names).await?; - let member_info = MemberInfo { event, profile, presence }; - Ok(Some(RoomMember::from_parts(member_info, &room_info))) + Ok(Some(RoomMember::from_parts(event, profile, presence, &room_info))) } /// The current `MemberRoomInfo` for this room.