Trait tract_core::internal::tract_ndarray::MultiSliceArg [−][src]
pub trait MultiSliceArg<'a, A, D> where
D: Dimension,
A: 'a, { type Output; fn multi_slice_move(
&self,
view: ArrayBase<ViewRepr<&'a mut 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
Required methods
fn multi_slice_move(
&self,
view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> Self::Output
[src]
&self,
view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> Self::Output
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, I0, I1, I2, I3> MultiSliceArg<'a, A, D> for (I0, I1, I2, I3) where
D: Dimension,
A: 'a,
I0: SliceArg<D>,
I1: SliceArg<D>,
I2: SliceArg<D>,
I3: SliceArg<D>,
[src]
impl<'a, A, D, I0, I1, I2, I3> MultiSliceArg<'a, A, D> for (I0, I1, I2, I3) where
D: Dimension,
A: 'a,
I0: SliceArg<D>,
I1: SliceArg<D>,
I2: SliceArg<D>,
I3: SliceArg<D>,
[src]type Output = (ArrayBase<ViewRepr<&'a mut A>, <I0 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I1 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I2 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I3 as SliceArg<D>>::OutDim>)
pub fn multi_slice_move(
&self,
view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> <(I0, I1, I2, I3) as MultiSliceArg<'a, A, D>>::Output
[src]
&self,
view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> <(I0, I1, I2, I3) as MultiSliceArg<'a, A, D>>::Output
impl<'a, A, D> MultiSliceArg<'a, A, D> for () where
D: Dimension,
A: 'a,
[src]
impl<'a, A, D> MultiSliceArg<'a, A, D> for () where
D: Dimension,
A: 'a,
[src]type Output = ()
pub fn multi_slice_move(
&self,
_view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> <() as MultiSliceArg<'a, A, D>>::Output
[src]
&self,
_view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> <() as MultiSliceArg<'a, A, D>>::Output
impl<'a, A, D, I0, I1, I2, I3, I4, I5> MultiSliceArg<'a, A, D> for (I0, I1, I2, I3, I4, I5) where
D: Dimension,
A: 'a,
I0: SliceArg<D>,
I1: SliceArg<D>,
I2: SliceArg<D>,
I3: SliceArg<D>,
I4: SliceArg<D>,
I5: SliceArg<D>,
[src]
impl<'a, A, D, I0, I1, I2, I3, I4, I5> MultiSliceArg<'a, A, D> for (I0, I1, I2, I3, I4, I5) where
D: Dimension,
A: 'a,
I0: SliceArg<D>,
I1: SliceArg<D>,
I2: SliceArg<D>,
I3: SliceArg<D>,
I4: SliceArg<D>,
I5: SliceArg<D>,
[src]type Output = (ArrayBase<ViewRepr<&'a mut A>, <I0 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I1 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I2 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I3 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I4 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I5 as SliceArg<D>>::OutDim>)
pub fn multi_slice_move(
&self,
view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> <(I0, I1, I2, I3, I4, I5) as MultiSliceArg<'a, A, D>>::Output
[src]
&self,
view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> <(I0, I1, I2, I3, I4, I5) as MultiSliceArg<'a, A, D>>::Output
impl<'a, A, D, I0, I1, I2> MultiSliceArg<'a, A, D> for (I0, I1, I2) where
D: Dimension,
A: 'a,
I0: SliceArg<D>,
I1: SliceArg<D>,
I2: SliceArg<D>,
[src]
impl<'a, A, D, I0, I1, I2> MultiSliceArg<'a, A, D> for (I0, I1, I2) where
D: Dimension,
A: 'a,
I0: SliceArg<D>,
I1: SliceArg<D>,
I2: SliceArg<D>,
[src]type Output = (ArrayBase<ViewRepr<&'a mut A>, <I0 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I1 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I2 as SliceArg<D>>::OutDim>)
pub fn multi_slice_move(
&self,
view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> <(I0, I1, I2) as MultiSliceArg<'a, A, D>>::Output
[src]
&self,
view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> <(I0, I1, I2) as MultiSliceArg<'a, A, D>>::Output
impl<'a, '_, A, D, T> MultiSliceArg<'a, A, D> for &'_ T where
T: MultiSliceArg<'a, A, D>,
D: Dimension,
A: 'a,
[src]
impl<'a, '_, A, D, T> MultiSliceArg<'a, A, D> for &'_ T where
T: MultiSliceArg<'a, A, D>,
D: Dimension,
A: 'a,
[src]type Output = <T as MultiSliceArg<'a, A, D>>::Output
pub fn multi_slice_move(
&self,
view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> <&'_ T as MultiSliceArg<'a, A, D>>::Output
[src]
&self,
view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> <&'_ T as MultiSliceArg<'a, A, D>>::Output
impl<'a, A, D, I0, I1> MultiSliceArg<'a, A, D> for (I0, I1) where
D: Dimension,
A: 'a,
I0: SliceArg<D>,
I1: SliceArg<D>,
[src]
impl<'a, A, D, I0, I1> MultiSliceArg<'a, A, D> for (I0, I1) where
D: Dimension,
A: 'a,
I0: SliceArg<D>,
I1: SliceArg<D>,
[src]impl<'a, A, D, I0> MultiSliceArg<'a, A, D> for (I0,) where
D: Dimension,
A: 'a,
I0: SliceArg<D>,
[src]
impl<'a, A, D, I0> MultiSliceArg<'a, A, D> for (I0,) where
D: Dimension,
A: 'a,
I0: SliceArg<D>,
[src]impl<'a, A, D, I0, I1, I2, I3, I4> MultiSliceArg<'a, A, D> for (I0, I1, I2, I3, I4) where
D: Dimension,
A: 'a,
I0: SliceArg<D>,
I1: SliceArg<D>,
I2: SliceArg<D>,
I3: SliceArg<D>,
I4: SliceArg<D>,
[src]
impl<'a, A, D, I0, I1, I2, I3, I4> MultiSliceArg<'a, A, D> for (I0, I1, I2, I3, I4) where
D: Dimension,
A: 'a,
I0: SliceArg<D>,
I1: SliceArg<D>,
I2: SliceArg<D>,
I3: SliceArg<D>,
I4: SliceArg<D>,
[src]type Output = (ArrayBase<ViewRepr<&'a mut A>, <I0 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I1 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I2 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I3 as SliceArg<D>>::OutDim>, ArrayBase<ViewRepr<&'a mut A>, <I4 as SliceArg<D>>::OutDim>)
pub fn multi_slice_move(
&self,
view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> <(I0, I1, I2, I3, I4) as MultiSliceArg<'a, A, D>>::Output
[src]
&self,
view: ArrayBase<ViewRepr<&'a mut A>, D>
) -> <(I0, I1, I2, I3, I4) as MultiSliceArg<'a, A, D>>::Output