Trait scratchpad::SliceMoveSource [−][src]
pub trait SliceMoveSource<T: ?Sized>: SliceSource<T> where
T: SliceLike, { fn move_elements<F>(self, f: F)
where
Self: Sized,
F: FnMut(<T as SliceLike>::Element); }
Subtrait of SliceSource
for taking ownership of the contents of a
slice.
Required Methods
fn move_elements<F>(self, f: F) where
Self: Sized,
F: FnMut(<T as SliceLike>::Element),
Self: Sized,
F: FnMut(<T as SliceLike>::Element),
Calls a closure for each item in this source, consuming the source.
Examples
use scratchpad::SliceMoveSource; fn move_to_vec<T: SliceMoveSource<[i32]>>(source: T) -> Vec<i32> { let mut out = Vec::new(); source.move_elements(|x| out.push(x)); out } let values = [5, 6, 7, 8]; let out = move_to_vec([5, 6, 7, 8]); assert_eq!(*out, [5, 6, 7, 8]);
Implementations on Foreign Types
impl<'a, T: ?Sized> SliceMoveSource<T> for &'a T where
T: SliceLike,
<T as SliceLike>::Element: Copy,
[src]
impl<'a, T: ?Sized> SliceMoveSource<T> for &'a T where
T: SliceLike,
<T as SliceLike>::Element: Copy,
fn move_elements<F>(self, f: F) where
F: FnMut(<T as SliceLike>::Element),
[src]
fn move_elements<F>(self, f: F) where
F: FnMut(<T as SliceLike>::Element),
impl<T: ?Sized> SliceMoveSource<T> for Box<T> where
T: SliceLike,
[src]
impl<T: ?Sized> SliceMoveSource<T> for Box<T> where
T: SliceLike,
fn move_elements<F>(self, f: F) where
F: FnMut(<T as SliceLike>::Element),
[src]
fn move_elements<F>(self, f: F) where
F: FnMut(<T as SliceLike>::Element),
impl<T> SliceMoveSource<[T]> for Vec<T>
[src]
impl<T> SliceMoveSource<[T]> for Vec<T>
fn move_elements<F>(self, f: F) where
F: FnMut(T),
[src]
fn move_elements<F>(self, f: F) where
F: FnMut(T),
impl<'a, T: ?Sized> SliceMoveSource<T> for &'a Box<T> where
T: SliceLike,
<T as SliceLike>::Element: Copy,
[src]
impl<'a, T: ?Sized> SliceMoveSource<T> for &'a Box<T> where
T: SliceLike,
<T as SliceLike>::Element: Copy,
fn move_elements<F>(self, f: F) where
F: FnMut(<T as SliceLike>::Element),
[src]
fn move_elements<F>(self, f: F) where
F: FnMut(<T as SliceLike>::Element),
impl<'a, T> SliceMoveSource<[T]> for &'a Vec<T> where
T: Copy,
[src]
impl<'a, T> SliceMoveSource<[T]> for &'a Vec<T> where
T: Copy,
fn move_elements<F>(self, f: F) where
F: FnMut(T),
[src]
fn move_elements<F>(self, f: F) where
F: FnMut(T),