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,
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,
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]);
Implementors
impl<T> VecExt<T> for Vec<T>