From 2e02a93670707ba3726e46f9a5dc02c3f55c060c Mon Sep 17 00:00:00 2001 From: Max Verevkin Date: Sat, 11 Jun 2022 15:51:03 +0300 Subject: refactor: use Vec::retain_mut() --- src/bar_state.rs | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/bar_state.rs b/src/bar_state.rs index fc34102..8a2d8cf 100644 --- a/src/bar_state.rs +++ b/src/bar_state.rs @@ -221,20 +221,9 @@ impl BarState { } pub fn handle_events(&mut self) { - // This is ugly, let's hope that some version of drain_filter() gets stabilized soon - // https://github.com/rust-lang/rust/issues/43244 - let mut i = 0; - while i != self.surfaces.len() { - if self.surfaces[i].handle_events( - &self.blocks, - &mut self.blocks_cache, - self.blocks_updated, - ) { - self.surfaces.remove(i); - } else { - i += 1; - } - } + self.surfaces.retain_mut(|surface| { + !surface.handle_events(&self.blocks, &mut self.blocks_cache, self.blocks_updated) + }); self.blocks_updated = false; } } -- cgit v1.3.1