mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-05-14 11:05:32 -04:00
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:
@@ -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>>>,
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user