Vec::retain()
Оставляет только элементы, удовлетворяющие условию.
Сигнатура
fn retain<F: FnMut(&T) -> bool>(&mut self, f: F)Удаляет на месте все элементы, для которых замыкание вернуло false, сохраняя порядок оставшихся.
let mut v = vec![1, 2, 3, 4];
v.retain(|&x| x % 2 == 0);
println!("{:?}", v); // [2, 4]