diff --git a/src/message.rs b/src/message.rs index 932c899..239f281 100644 --- a/src/message.rs +++ b/src/message.rs @@ -50,24 +50,9 @@ impl MessageCache { let mut store = cache.store.lock().unwrap(); let now = Instant::now(); - let to_rm: Vec = store - .iter() - .filter_map(|(entry, entrytime)| { - if let Some(duration) = now.checked_duration_since(*entrytime) { - if duration > MESSAGECACHEDURATION { - Some(entry.clone()) - } else { - None - } - } else { - None - } - }) - .collect(); - - for key in to_rm { - store.remove(&key); - } + store.retain(|_, &mut entrytime| { + now.duration_since(entrytime) <= MESSAGECACHEDURATION + }); } } }