From 32bdcede0caf1813a25e2f2ba6f086dc156b07bb Mon Sep 17 00:00:00 2001 From: Denis Kasak Date: Wed, 1 Jul 2020 12:06:59 +0200 Subject: [PATCH] Small refactoring to simplify member_disambiguations. --- matrix_sdk_base/src/models/room.rs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/matrix_sdk_base/src/models/room.rs b/matrix_sdk_base/src/models/room.rs index 1602c3d5..b2547f76 100644 --- a/matrix_sdk_base/src/models/room.rs +++ b/matrix_sdk_base/src/models/room.rs @@ -427,7 +427,7 @@ impl Room { /// /// The `inclusive` parameter controls whether the passed member should be included in the /// list or not. - fn shares_displayname_with(&self, member: &RoomMember, inclusive: bool) -> Vec { + fn shares_displayname_with(&self, member: &RoomMember, inclusive: bool) -> Vec { let members = self .invited_members .iter() @@ -449,7 +449,7 @@ impl Room { }) // If not an inclusive search, do not consider the member for which we are disambiguating. .filter(|(id, _)| inclusive || **id != member.user_id) - .map(|(id, _)| id) + .map(|(_, member)| member) .cloned() .collect() } @@ -467,16 +467,10 @@ impl Room { inclusive: bool, ) -> HashMap { let users_with_same_name = self.shares_displayname_with(member, inclusive); - let disambiguate_with = |members: Vec, f: fn(&RoomMember) -> String| { + let disambiguate_with = |members: Vec, f: fn(&RoomMember) -> String| { members .into_iter() - .filter_map(|id| { - self.joined_members - .get(&id) - .or_else(|| self.invited_members.get(&id)) - .map(f) - .map(|m| (id, m)) - }) + .map(|ref m| (m.user_id.clone(), f(m))) .collect::>() };