Trait ndarray::MultiSliceArg[][src]

pub trait MultiSliceArg<'a, A, D> where
    A: 'a,
    D: Dimension
{ type Output; 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.

Associated Types

type Output[src]

Expand description

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

Required methods

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

Expand description

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).

fn __private__(&self) -> PrivateMarker[src]

Expand description

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

Implementations on Foreign Types

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

type Output = ()

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

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

type Output = (ArrayViewMut<'a, A, I0::OutDim>,)

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

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

type Output = (ArrayViewMut<'a, A, I0::OutDim>, ArrayViewMut<'a, A, I1::OutDim>)

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

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>, 
[src]

type Output = (ArrayViewMut<'a, A, I0::OutDim>, ArrayViewMut<'a, A, I1::OutDim>, ArrayViewMut<'a, A, I2::OutDim>)

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

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>, 
[src]

type Output = (ArrayViewMut<'a, A, I0::OutDim>, ArrayViewMut<'a, A, I1::OutDim>, ArrayViewMut<'a, A, I2::OutDim>, ArrayViewMut<'a, A, I3::OutDim>)

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

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>, 
[src]

type Output = (ArrayViewMut<'a, A, I0::OutDim>, ArrayViewMut<'a, A, I1::OutDim>, ArrayViewMut<'a, A, I2::OutDim>, ArrayViewMut<'a, A, I3::OutDim>, ArrayViewMut<'a, A, I4::OutDim>)

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

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>, 
[src]

type Output = (ArrayViewMut<'a, A, I0::OutDim>, ArrayViewMut<'a, A, I1::OutDim>, ArrayViewMut<'a, A, I2::OutDim>, ArrayViewMut<'a, A, I3::OutDim>, ArrayViewMut<'a, A, I4::OutDim>, ArrayViewMut<'a, A, I5::OutDim>)

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

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

type Output = T::Output

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

Implementors