Trait odds::vec::VecExt
[−]
[src]
pub trait VecExt<T> {
fn splice<R, I>(&mut self, r: R, iter: I) where I: IntoIterator<Item=T>, I::IntoIter: ExactSizeIterator, R: IndexRange;
fn retain_mut<F>(&mut self, f: F) where F: FnMut(&mut T) -> bool;
}Extra methods for Vec<T>
Requires feature="std"
Required Methods
fn splice<R, I>(&mut self, r: R, iter: I) where I: IntoIterator<Item=T>, I::IntoIter: ExactSizeIterator, R: IndexRange
Remove elements in a range, and insert from an iterator in their place.
The removed and inserted ranges don't have to match in length.
Panics if range r is out of bounds.
Panics if iterator iter is not of exact length.
fn retain_mut<F>(&mut self, f: F) where F: FnMut(&mut T) -> bool
Retains only the elements specified by the predicate.
In other words, remove all elements e such that f(&mut e) returns false.
This method operates in place and preserves the order of the retained
elements.
Examples
use odds::vec::VecExt; let mut vec = vec![1, 2, 3, 4]; vec.retain_mut(|x| { let keep = *x % 2 == 0; *x *= 10; keep }); assert_eq!(vec, [20, 40]);