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.
This commit is contained in:
Benjamin Bouvier
2024-03-28 16:59:42 +01:00
parent 5d1fa986f3
commit 901024bccc
2 changed files with 10 additions and 17 deletions

View File

@@ -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<MinimalRoomMemberEvent>,
presence: Option<PresenceEvent>,
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<MinimalRoomMemberEvent>,
pub(crate) presence: Option<PresenceEvent>,
}
// Information about a the room a member is in.
pub(crate) struct MemberRoomInfo<'a> {
pub(crate) power_levels: Arc<Option<SyncOrStrippedState<RoomPowerLevelsEventContent>>>,

View File

@@ -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.