Trait tract_core::internal::tract_ndarray::SliceArg[][src]

pub unsafe trait SliceArg<D>: AsRef<[SliceInfoElem]> where
    D: Dimension
{ type OutDim: Dimension; fn in_ndim(&self) -> usize;
fn out_ndim(&self) -> usize;
fn __private__(&self) -> PrivateMarker; }
Expand description

A type that can slice an array of dimension D.

This trait is unsafe to implement because the implementation must ensure that D, Self::OutDim, self.in_dim(), and self.out_ndim() are consistent with the &[SliceInfoElem] returned by self.as_ref() and that self.as_ref() always returns the same value when called multiple times.

Associated Types

type OutDim: Dimension[src]

Expand description

Dimensionality of the output array.

Required methods

fn in_ndim(&self) -> usize[src]

Expand description

Returns the number of axes in the input array.

fn out_ndim(&self) -> usize[src]

Expand description

Returns the number of axes in the output array.

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 SliceArg<Dim<IxDynImpl>> for [SliceInfoElem][src]

type OutDim = Dim<IxDynImpl>

pub fn in_ndim(&self) -> usize[src]

pub fn out_ndim(&self) -> usize[src]

impl<'_, T, D> SliceArg<D> for &'_ T where
    T: SliceArg<D> + ?Sized,
    D: Dimension
[src]

type OutDim = <T as SliceArg<D>>::OutDim

pub fn in_ndim(&self) -> usize[src]

pub fn out_ndim(&self) -> usize[src]

Implementors

impl<T, Din, Dout> SliceArg<Dim<IxDynImpl>> for SliceInfo<T, Din, Dout> where
    T: AsRef<[SliceInfoElem]>,
    Din: Dimension,
    Dout: Dimension
[src]

type OutDim = Dout

pub fn in_ndim(&self) -> usize[src]

pub fn out_ndim(&self) -> usize[src]

impl<T, Dout> SliceArg<Dim<[usize; 0]>> for SliceInfo<T, Dim<[usize; 0]>, Dout> where
    T: AsRef<[SliceInfoElem]>,
    Dout: Dimension
[src]

type OutDim = Dout

pub fn in_ndim(&self) -> usize[src]

pub fn out_ndim(&self) -> usize[src]

impl<T, Dout> SliceArg<Dim<[usize; 1]>> for SliceInfo<T, Dim<[usize; 1]>, Dout> where
    T: AsRef<[SliceInfoElem]>,
    Dout: Dimension
[src]

type OutDim = Dout

pub fn in_ndim(&self) -> usize[src]

pub fn out_ndim(&self) -> usize[src]

impl<T, Dout> SliceArg<Dim<[usize; 2]>> for SliceInfo<T, Dim<[usize; 2]>, Dout> where
    T: AsRef<[SliceInfoElem]>,
    Dout: Dimension
[src]

type OutDim = Dout

pub fn in_ndim(&self) -> usize[src]

pub fn out_ndim(&self) -> usize[src]

impl<T, Dout> SliceArg<Dim<[usize; 3]>> for SliceInfo<T, Dim<[usize; 3]>, Dout> where
    T: AsRef<[SliceInfoElem]>,
    Dout: Dimension
[src]

type OutDim = Dout

pub fn in_ndim(&self) -> usize[src]

pub fn out_ndim(&self) -> usize[src]

impl<T, Dout> SliceArg<Dim<[usize; 4]>> for SliceInfo<T, Dim<[usize; 4]>, Dout> where
    T: AsRef<[SliceInfoElem]>,
    Dout: Dimension
[src]

type OutDim = Dout

pub fn in_ndim(&self) -> usize[src]

pub fn out_ndim(&self) -> usize[src]

impl<T, Dout> SliceArg<Dim<[usize; 5]>> for SliceInfo<T, Dim<[usize; 5]>, Dout> where
    T: AsRef<[SliceInfoElem]>,
    Dout: Dimension
[src]

type OutDim = Dout

pub fn in_ndim(&self) -> usize[src]

pub fn out_ndim(&self) -> usize[src]

impl<T, Dout> SliceArg<Dim<[usize; 6]>> for SliceInfo<T, Dim<[usize; 6]>, Dout> where
    T: AsRef<[SliceInfoElem]>,
    Dout: Dimension
[src]

type OutDim = Dout

pub fn in_ndim(&self) -> usize[src]

pub fn out_ndim(&self) -> usize[src]