Trait SliceSourceCollection

Source
pub trait SliceSourceCollection<T>
where T: SliceLike + ?Sized,
{ // Required method fn for_each<F>(&self, f: F) where F: for<'a> FnMut(&'a dyn SliceSource<T>); }
Expand description

Trait for generic access to collections of SliceSource objects.

Collections can be either arrays, tuples, or slices of SliceSource objects. Tuples can contain contain objects of different SliceSource implementation types. If either the std or unstable features are enabled, boxed slice and Vec instances can be used as slice source collections as well.

SliceSourceCollection on its own is only usable for Clone and Copy data sources. For move operations, the SliceMoveSourceCollection subtrait provides additional functionality for moving slices out of supported types.

Required Methods§

Source

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Calls a closure for each SliceSource in this collection.

§Examples
use scratchpad::{SliceLike, SliceSourceCollection};

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

let mut out = Vec::new();
collection.for_each(|source| {
    for x in source.as_slice_like().as_element_slice() {
        out.push(*x * 2);
    }
});
assert_eq!(*out, [2, 4, 6, 8, 10, 12]);

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.

Implementations on Foreign Types§

Source§

impl<'b, T, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for &'b (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, 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>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for &'b (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, 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>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for &'b (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, 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>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for &'b (T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, 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>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, T4, T5, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for &'b (T4, T5, T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, T4: SliceSource<T>, T5: SliceSource<T>, T6: SliceSource<T>, T7: SliceSource<T>, T8: SliceSource<T>, T9: SliceSource<T>, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, T5, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for &'b (T5, T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, T5: SliceSource<T>, T6: SliceSource<T>, T7: SliceSource<T>, T8: SliceSource<T>, T9: SliceSource<T>, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for &'b (T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, T6: SliceSource<T>, T7: SliceSource<T>, T8: SliceSource<T>, T9: SliceSource<T>, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, T7, T8, T9, T10, T11> SliceSourceCollection<T> for &'b (T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, T7: SliceSource<T>, T8: SliceSource<T>, T9: SliceSource<T>, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, T8, T9, T10, T11> SliceSourceCollection<T> for &'b (T8, T9, T10, T11)
where T: SliceLike + ?Sized, T8: SliceSource<T>, T9: SliceSource<T>, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, T9, T10, T11> SliceSourceCollection<T> for &'b (T9, T10, T11)
where T: SliceLike + ?Sized, T9: SliceSource<T>, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, T10, T11> SliceSourceCollection<T> for &'b (T10, T11)
where T: SliceLike + ?Sized, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, T11> SliceSourceCollection<T> for &'b (T11,)
where T: SliceLike + ?Sized, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, U> SliceSourceCollection<T> for &'b [U]
where T: SliceLike + ?Sized, U: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, U> SliceSourceCollection<T> for &'b Box<[U]>
where T: SliceLike + ?Sized, U: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<'b, T, U> SliceSourceCollection<T> for &'b Vec<U>
where T: SliceLike + ?Sized, U: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, 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>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, 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>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, 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>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, T3, T4, T5, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for (T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, 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>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, T4, T5, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for (T4, T5, T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, T4: SliceSource<T>, T5: SliceSource<T>, T6: SliceSource<T>, T7: SliceSource<T>, T8: SliceSource<T>, T9: SliceSource<T>, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, T5, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for (T5, T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, T5: SliceSource<T>, T6: SliceSource<T>, T7: SliceSource<T>, T8: SliceSource<T>, T9: SliceSource<T>, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, T6, T7, T8, T9, T10, T11> SliceSourceCollection<T> for (T6, T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, T6: SliceSource<T>, T7: SliceSource<T>, T8: SliceSource<T>, T9: SliceSource<T>, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, T7, T8, T9, T10, T11> SliceSourceCollection<T> for (T7, T8, T9, T10, T11)
where T: SliceLike + ?Sized, T7: SliceSource<T>, T8: SliceSource<T>, T9: SliceSource<T>, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, T8, T9, T10, T11> SliceSourceCollection<T> for (T8, T9, T10, T11)
where T: SliceLike + ?Sized, T8: SliceSource<T>, T9: SliceSource<T>, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, T9, T10, T11> SliceSourceCollection<T> for (T9, T10, T11)
where T: SliceLike + ?Sized, T9: SliceSource<T>, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, T10, T11> SliceSourceCollection<T> for (T10, T11)
where T: SliceLike + ?Sized, T10: SliceSource<T>, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, T11> SliceSourceCollection<T> for (T11,)
where T: SliceLike + ?Sized, T11: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, U> SliceSourceCollection<T> for Box<[U]>
where T: SliceLike + ?Sized, U: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Source§

impl<T, U> SliceSourceCollection<T> for Vec<U>
where T: SliceLike + ?Sized, U: SliceSource<T>,

Source§

fn for_each<F>(&self, f: F)
where F: for<'a> FnMut(&'a dyn SliceSource<T>),

Implementors§

Source§

impl<T, U> SliceSourceCollection<T> for U
where T: SliceLike + ?Sized, U: Array, <U as Array>::Item: SliceSource<T>,