Trait vec_remove_if::VecRemoveIf
source · [−]pub trait VecRemoveIf<T> {
fn remove_if<F: Fn(&T) -> bool>(&mut self, closure: F) -> Vec<T>;
fn swap_remove_if<F: Fn(&T) -> bool>(&mut self, closure: F) -> Vec<T>;
}
Expand description
Add Self::remove_if and Self::swap_remove_if to Vec
Required Methods
Run Vec::remove on each element in a vec when closure
returns true
Example
use vec_remove_if::VecRemoveIf;
let mut v = vec![1, 2, 3, 4, 5, 6, 7, 8];
assert_eq!(
vec![1, 2, 3],
v.remove_if(|e| e < &4)
);
assert_eq!(
vec![4, 5, 6, 7, 8],
v
);
Run Vec::swap_remove on each element in a vec when closure
returns true
Self::swap_remove_if is more efficient, but does not preserve the element order of the vector (See Vec::swap_remove).
Example
use vec_remove_if::VecRemoveIf;
let mut v = vec![1, 2, 3, 4, 5, 6, 7, 8];
assert_eq!(
vec![1, 2, 3],
v.swap_remove_if(|e| e < &4)
);
assert_eq!(
vec![8, 7, 6, 4, 5],
v
);