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

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
 );

Implementations on Foreign Types

Implementors