pub trait VecRemoveIf<T> {
// Required methods
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§
Sourcefn remove_if<F: Fn(&T) -> bool>(&mut self, closure: F) -> Vec<T>
fn remove_if<F: Fn(&T) -> bool>(&mut self, closure: F) -> Vec<T>
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
);
Sourcefn swap_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>
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
);
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.