ndarray

Trait MultiSliceArg

Source
pub trait MultiSliceArg<'a, A, D>
where A: 'a, D: Dimension,
{ type Output; // Required methods fn multi_slice_move(&self, view: ArrayViewMut<'a, A, D>) -> Self::Output; fn __private__(&self) -> PrivateMarker; }
Expand description

Slicing information describing multiple mutable, disjoint slices.

It’s unfortunate that we need 'a and A to be parameters of the trait, but they’re necessary until Rust supports generic associated types.

Required Associated Types§

Source

type Output

The type of the slices created by .multi_slice_move().

Required Methods§

Source

fn multi_slice_move(&self, view: ArrayViewMut<'a, A, D>) -> Self::Output

Split the view into multiple disjoint slices.

Panics if performing any individual slice panics or if the slices are not disjoint (i.e. if they intersect).

Source

fn __private__(&self) -> PrivateMarker

This trait is private to implement; this method exists to make it impossible to implement outside the crate.

Implementations on Foreign Types§

Source§

impl<'a, A, D> MultiSliceArg<'a, A, D> for ()
where A: 'a, D: Dimension,

Source§

type Output = ()

Source§

fn multi_slice_move(&self, _view: ArrayViewMut<'a, A, D>) -> Self::Output

Source§

impl<'a, A, D, I0> MultiSliceArg<'a, A, D> for (I0,)
where A: 'a, D: Dimension, I0: SliceArg<D>,

Source§

type Output = (ArrayBase<ViewRepr<&'a mut A>, <I0 as SliceArg<D>>::OutDim>,)

Source§

fn multi_slice_move(&self, view: ArrayViewMut<'a, A, D>) -> Self::Output

Source§

impl<'a, A, D, I0, I1> MultiSliceArg<'a, A, D> for (I0, I1)
where A: 'a, D: Dimension, I0: SliceArg<D>, I1: SliceArg<D>,

Source§

impl<'a, A, D, I0, I1, I2> MultiSliceArg<'a, A, D> for (I0, I1, I2)
where A: 'a, D: Dimension, I0: SliceArg<D>, I1: SliceArg<D>, I2: SliceArg<D>,

Source§

impl<'a, A, D, I0, I1, I2, I3> MultiSliceArg<'a, A, D> for (I0, I1, I2, I3)
where A: 'a, D: Dimension, I0: SliceArg<D>, I1: SliceArg<D>, I2: SliceArg<D>, I3: SliceArg<D>,

Source§

impl<'a, A, D, I0, I1, I2, I3, I4> MultiSliceArg<'a, A, D> for (I0, I1, I2, I3, I4)
where A: 'a, D: Dimension, I0: SliceArg<D>, I1: SliceArg<D>, I2: SliceArg<D>, I3: SliceArg<D>, I4: SliceArg<D>,

Source§

impl<'a, A, D, I0, I1, I2, I3, I4, I5> MultiSliceArg<'a, A, D> for (I0, I1, I2, I3, I4, I5)
where A: 'a, D: Dimension, I0: SliceArg<D>, I1: SliceArg<D>, I2: SliceArg<D>, I3: SliceArg<D>, I4: SliceArg<D>, I5: SliceArg<D>,

Source§

impl<'a, A, D, T> MultiSliceArg<'a, A, D> for &T
where A: 'a, D: Dimension, T: MultiSliceArg<'a, A, D>,

Source§

type Output = <T as MultiSliceArg<'a, A, D>>::Output

Source§

fn multi_slice_move(&self, view: ArrayViewMut<'a, A, D>) -> Self::Output

Implementors§