use ruma::{
RoomId,
events::{
SyncStateEvent,
room::member::{MembershipState, RoomMemberEventContent},
},
};
use super::Context;
pub fn upsert_or_delete(
context: &mut Context,
room_id: &RoomId,
event: &SyncStateEvent<RoomMemberEventContent>,
) {
if event.state_key() == event.sender() {
context
.state_changes
.profiles
.entry(room_id.to_owned())
.or_default()
.insert(event.sender().to_owned(), event.into());
}
if *event.membership() == MembershipState::Invite {
context
.state_changes
.profiles_to_delete
.entry(room_id.to_owned())
.or_default()
.push(event.state_key().clone());
}
}