Trait scratchpad::SliceMoveSourceCollection[][src]

pub trait SliceMoveSourceCollection<T: ?Sized>: SliceSourceCollection<T> where
    T: SliceLike
{ fn move_all_elements<F>(self, f: F)
    where
        Self: Sized,
        F: FnMut(<T as SliceLike>::Element)
; }

Subtrait of SliceSourceCollection for taking ownership of the contents of a collection of slice sources.

Required methods

fn move_all_elements<F>(self, f: F) where
    Self: Sized,
    F: FnMut(<T as SliceLike>::Element), 
[src]

Calls a closure for each item in all SliceSource objects of this collection in sequence, consuming the collection.

Examples

use scratchpad::SliceMoveSourceCollection;

let collection = ([1, 2, 3], [4], [5, 6]);

let mut out = Vec::new();
collection.move_all_elements(|x| out.push(x * 2));
assert_eq!(*out, [2, 4, 6, 8, 10, 12]);
Loading content...

Implementations on Foreign Types

impl<'b, T: ?Sized, U> SliceMoveSourceCollection<T> for &'b [U] where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    U: SliceSource<T>, 
[src]

impl<T: ?Sized, U> SliceMoveSourceCollection<T> for Box<[U]> where
    T: SliceLike,
    U: SliceMoveSource<T>, 
[src]

impl<T: ?Sized, U> SliceMoveSourceCollection<T> for Vec<U> where
    T: SliceLike,
    U: SliceMoveSource<T>, 
[src]

impl<'b, T: ?Sized, U> SliceMoveSourceCollection<T> for &'b Box<[U]> where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    U: SliceSource<T>, 
[src]

impl<'b, T: ?Sized, U> SliceMoveSourceCollection<T> for &'b Vec<U> where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    U: SliceSource<T>, 
[src]

impl<T: ?Sized, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    T0: SliceMoveSource<T>,
    T1: SliceMoveSource<T>,
    T2: SliceMoveSource<T>,
    T3: SliceMoveSource<T>,
    T4: SliceMoveSource<T>,
    T5: SliceMoveSource<T>,
    T6: SliceMoveSource<T>,
    T7: SliceMoveSource<T>,
    T8: SliceMoveSource<T>,
    T9: SliceMoveSource<T>,
    T10: SliceMoveSource<T>,
    T11: SliceMoveSource<T>, 
[src]

impl<'b, T: ?Sized, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for &'b (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    T0: SliceSource<T>,
    T1: SliceSource<T>,
    T2: SliceSource<T>,
    T3: SliceSource<T>,
    T4: SliceSource<T>,
    T5: SliceSource<T>,
    T6: SliceSource<T>,
    T7: SliceSource<T>,
    T8: SliceSource<T>,
    T9: SliceSource<T>,
    T10: SliceSource<T>,
    T11: SliceSource<T>, 
[src]

impl<T: ?Sized, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    T1: SliceMoveSource<T>,
    T2: SliceMoveSource<T>,
    T3: SliceMoveSource<T>,
    T4: SliceMoveSource<T>,
    T5: SliceMoveSource<T>,
    T6: SliceMoveSource<T>,
    T7: SliceMoveSource<T>,
    T8: SliceMoveSource<T>,
    T9: SliceMoveSource<T>,
    T10: SliceMoveSource<T>,
    T11: SliceMoveSource<T>, 
[src]

impl<'b, T: ?Sized, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for &'b (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    T1: SliceSource<T>,
    T2: SliceSource<T>,
    T3: SliceSource<T>,
    T4: SliceSource<T>,
    T5: SliceSource<T>,
    T6: SliceSource<T>,
    T7: SliceSource<T>,
    T8: SliceSource<T>,
    T9: SliceSource<T>,
    T10: SliceSource<T>,
    T11: SliceSource<T>, 
[src]

impl<T: ?Sized, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    T2: SliceMoveSource<T>,
    T3: SliceMoveSource<T>,
    T4: SliceMoveSource<T>,
    T5: SliceMoveSource<T>,
    T6: SliceMoveSource<T>,
    T7: SliceMoveSource<T>,
    T8: SliceMoveSource<T>,
    T9: SliceMoveSource<T>,
    T10: SliceMoveSource<T>,
    T11: SliceMoveSource<T>, 
[src]

impl<'b, T: ?Sized, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for &'b (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    T2: SliceSource<T>,
    T3: SliceSource<T>,
    T4: SliceSource<T>,
    T5: SliceSource<T>,
    T6: SliceSource<T>,
    T7: SliceSource<T>,
    T8: SliceSource<T>,
    T9: SliceSource<T>,
    T10: SliceSource<T>,
    T11: SliceSource<T>, 
[src]

impl<T: ?Sized, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for (T3, T4, T5, T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    T3: SliceMoveSource<T>,
    T4: SliceMoveSource<T>,
    T5: SliceMoveSource<T>,
    T6: SliceMoveSource<T>,
    T7: SliceMoveSource<T>,
    T8: SliceMoveSource<T>,
    T9: SliceMoveSource<T>,
    T10: SliceMoveSource<T>,
    T11: SliceMoveSource<T>, 
[src]

impl<'b, T: ?Sized, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for &'b (T3, T4, T5, T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    T3: SliceSource<T>,
    T4: SliceSource<T>,
    T5: SliceSource<T>,
    T6: SliceSource<T>,
    T7: SliceSource<T>,
    T8: SliceSource<T>,
    T9: SliceSource<T>,
    T10: SliceSource<T>,
    T11: SliceSource<T>, 
[src]

impl<T: ?Sized, T4, T5, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for (T4, T5, T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    T4: SliceMoveSource<T>,
    T5: SliceMoveSource<T>,
    T6: SliceMoveSource<T>,
    T7: SliceMoveSource<T>,
    T8: SliceMoveSource<T>,
    T9: SliceMoveSource<T>,
    T10: SliceMoveSource<T>,
    T11: SliceMoveSource<T>, 
[src]

impl<'b, T: ?Sized, T4, T5, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for &'b (T4, T5, T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    T4: SliceSource<T>,
    T5: SliceSource<T>,
    T6: SliceSource<T>,
    T7: SliceSource<T>,
    T8: SliceSource<T>,
    T9: SliceSource<T>,
    T10: SliceSource<T>,
    T11: SliceSource<T>, 
[src]

impl<T: ?Sized, T5, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for (T5, T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    T5: SliceMoveSource<T>,
    T6: SliceMoveSource<T>,
    T7: SliceMoveSource<T>,
    T8: SliceMoveSource<T>,
    T9: SliceMoveSource<T>,
    T10: SliceMoveSource<T>,
    T11: SliceMoveSource<T>, 
[src]

impl<'b, T: ?Sized, T5, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for &'b (T5, T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    T5: SliceSource<T>,
    T6: SliceSource<T>,
    T7: SliceSource<T>,
    T8: SliceSource<T>,
    T9: SliceSource<T>,
    T10: SliceSource<T>,
    T11: SliceSource<T>, 
[src]

impl<T: ?Sized, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for (T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    T6: SliceMoveSource<T>,
    T7: SliceMoveSource<T>,
    T8: SliceMoveSource<T>,
    T9: SliceMoveSource<T>,
    T10: SliceMoveSource<T>,
    T11: SliceMoveSource<T>, 
[src]

impl<'b, T: ?Sized, T6, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for &'b (T6, T7, T8, T9, T10, T11) where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    T6: SliceSource<T>,
    T7: SliceSource<T>,
    T8: SliceSource<T>,
    T9: SliceSource<T>,
    T10: SliceSource<T>,
    T11: SliceSource<T>, 
[src]

impl<T: ?Sized, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for (T7, T8, T9, T10, T11) where
    T: SliceLike,
    T7: SliceMoveSource<T>,
    T8: SliceMoveSource<T>,
    T9: SliceMoveSource<T>,
    T10: SliceMoveSource<T>,
    T11: SliceMoveSource<T>, 
[src]

impl<'b, T: ?Sized, T7, T8, T9, T10, T11> SliceMoveSourceCollection<T> for &'b (T7, T8, T9, T10, T11) where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    T7: SliceSource<T>,
    T8: SliceSource<T>,
    T9: SliceSource<T>,
    T10: SliceSource<T>,
    T11: SliceSource<T>, 
[src]

impl<T: ?Sized, T8, T9, T10, T11> SliceMoveSourceCollection<T> for (T8, T9, T10, T11) where
    T: SliceLike,
    T8: SliceMoveSource<T>,
    T9: SliceMoveSource<T>,
    T10: SliceMoveSource<T>,
    T11: SliceMoveSource<T>, 
[src]

impl<'b, T: ?Sized, T8, T9, T10, T11> SliceMoveSourceCollection<T> for &'b (T8, T9, T10, T11) where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    T8: SliceSource<T>,
    T9: SliceSource<T>,
    T10: SliceSource<T>,
    T11: SliceSource<T>, 
[src]

impl<T: ?Sized, T9, T10, T11> SliceMoveSourceCollection<T> for (T9, T10, T11) where
    T: SliceLike,
    T9: SliceMoveSource<T>,
    T10: SliceMoveSource<T>,
    T11: SliceMoveSource<T>, 
[src]

impl<'b, T: ?Sized, T9, T10, T11> SliceMoveSourceCollection<T> for &'b (T9, T10, T11) where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    T9: SliceSource<T>,
    T10: SliceSource<T>,
    T11: SliceSource<T>, 
[src]

impl<T: ?Sized, T10, T11> SliceMoveSourceCollection<T> for (T10, T11) where
    T: SliceLike,
    T10: SliceMoveSource<T>,
    T11: SliceMoveSource<T>, 
[src]

impl<'b, T: ?Sized, T10, T11> SliceMoveSourceCollection<T> for &'b (T10, T11) where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    T10: SliceSource<T>,
    T11: SliceSource<T>, 
[src]

impl<T: ?Sized, T11> SliceMoveSourceCollection<T> for (T11,) where
    T: SliceLike,
    T11: SliceMoveSource<T>, 
[src]

impl<'b, T: ?Sized, T11> SliceMoveSourceCollection<T> for &'b (T11,) where
    T: SliceLike,
    <T as SliceLike>::Element: Copy,
    T11: SliceSource<T>, 
[src]

Loading content...

Implementors

impl<T: ?Sized, U> SliceMoveSourceCollection<T> for U where
    T: SliceLike,
    U: Array,
    <U as Array>::Item: SliceMoveSource<T>, 
[src]

Loading content...