use iced::Element; use super::{Message, Navigation}; impl<'a, TOption> Navigation where TOption: Clone + PartialEq + 'a, Element<'a, Message>: From<&'a TOption>, { pub fn remove_options_where

(&mut self, pred: P) where P: Fn(&TOption) -> bool, { while let Some(index) = self.options_before_active.iter().position(&pred) { self.options_before_active.remove(index); } while let Some(index) = self.options_after_active.iter().position(&pred) { self.options_after_active.remove(index); } if self.active_option.as_ref().is_some_and(pred) { self.active_option = self .options_before_active .pop() .or_else(|| self.options_after_active.splice(0..1, Vec::new()).last()); } } }