From 10b8d1a68200c7d758ba74fe74c0762651134ec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Thu, 14 Nov 2019 20:18:31 +0100 Subject: [PATCH] nio: Add scaffolding for member removals in the base client. --- src/base_client.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/base_client.rs b/src/base_client.rs index 4cbafe8c..ca4ea68e 100644 --- a/src/base_client.rs +++ b/src/base_client.rs @@ -74,6 +74,14 @@ impl Room { true } + fn remove_member(&mut self, event: &MemberEvent) -> bool { + if !self.members.contains_key(&event.state_key) { + return false; + } + + true + } + fn update_joined_member(&mut self, event: &MemberEvent) -> bool { if let Some(member) = self.members.get_mut(&event.state_key) { member.display_name = event.content.displayname.clone(); @@ -88,7 +96,7 @@ impl Room { Some(c) => match c.membership { MembershipState::Join => self.update_joined_member(event), MembershipState::Invite => self.add_member(event), - MembershipState::Leave => self.add_member(event), + MembershipState::Leave => self.remove_member(event), _ => false, }, None => self.add_member(event),