From a52c2e09096dc919373e7aafe3b2f8c0c7b60e41 Mon Sep 17 00:00:00 2001 From: James Magahern Date: Sat, 21 Feb 2026 21:40:12 -0800 Subject: [PATCH] eds contact resolver: cache when no contact found --- .../src/daemon/contact_resolver/mod.rs | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/core/kordophoned/src/daemon/contact_resolver/mod.rs b/core/kordophoned/src/daemon/contact_resolver/mod.rs index e391b80..2adf268 100644 --- a/core/kordophoned/src/daemon/contact_resolver/mod.rs +++ b/core/kordophoned/src/daemon/contact_resolver/mod.rs @@ -47,8 +47,8 @@ pub type AnyContactID = String; #[derive(Clone)] pub struct ContactResolver { backend: T, - display_name_cache: HashMap, - contact_id_cache: HashMap, + display_name_cache: HashMap>, + contact_id_cache: HashMap>, } impl ContactResolver @@ -67,29 +67,25 @@ where pub fn resolve_contact_id(&mut self, address: &str) -> Option { if let Some(id) = self.contact_id_cache.get(address) { - return Some(id.clone()); + return id.clone(); } let id = self.backend.resolve_contact_id(address).map(|id| id.into()); - if let Some(ref id) = id { - self.contact_id_cache - .insert(address.to_string(), id.clone()); - } + self.contact_id_cache + .insert(address.to_string(), id.clone()); id } pub fn get_contact_display_name(&mut self, contact_id: &AnyContactID) -> Option { if let Some(display_name) = self.display_name_cache.get(contact_id) { - return Some(display_name.clone()); + return display_name.clone(); } let backend_contact_id: T::ContactID = T::ContactID::from((*contact_id).clone()); let display_name = self.backend.get_contact_display_name(&backend_contact_id); - if let Some(ref display_name) = display_name { - self.display_name_cache - .insert(contact_id.to_string(), display_name.clone()); - } + self.display_name_cache + .insert(contact_id.to_string(), display_name.clone()); display_name }