Struct ndarray::SliceInfo [−][src]
Represents all of the necessary information to perform a slice.
The type T is typically [SliceInfoElem; n], &[SliceInfoElem], or
Vec<SliceInfoElem>. The type Din is the dimension of the array to be
sliced, and Dout is the output dimension after calling .slice(). Note
that if Din is a fixed dimension type (Ix0, Ix1, Ix2, etc.), the
SliceInfo instance can still be used to slice an array with dimension
IxDyn as long as the number of axes matches.
Implementations
impl<T, Din, Dout> SliceInfo<T, Din, Dout> where
T: AsRef<[SliceInfoElem]>,
Din: Dimension,
Dout: Dimension, [src]
T: AsRef<[SliceInfoElem]>,
Din: Dimension,
Dout: Dimension,
pub unsafe fn new(indices: T) -> Result<SliceInfo<T, Din, Dout>, ShapeError>[src]
Returns a new SliceInfo instance.
Errors if Din or Dout is not consistent with indices.
For common types, a safe alternative is to use TryFrom instead.
Safety
The caller must ensure indices.as_ref() always returns the same value
when called multiple times.
pub fn in_ndim(&self) -> usize[src]
Returns the number of dimensions of the input array for
.slice().
If Din is a fixed-size dimension type, then this is equivalent to
Din::NDIM.unwrap(). Otherwise, the value is calculated by iterating
over the SliceInfoElem elements.
pub fn out_ndim(&self) -> usize[src]
Returns the number of dimensions after calling
.slice() (including taking
subviews).
If Dout is a fixed-size dimension type, then this is equivalent to
Dout::NDIM.unwrap(). Otherwise, the value is calculated by iterating
over the SliceInfoElem elements.
Trait Implementations
impl<T, Din, Dout> AsRef<[SliceInfoElem]> for SliceInfo<T, Din, Dout> where
T: AsRef<[SliceInfoElem]>,
Din: Dimension,
Dout: Dimension, [src]
T: AsRef<[SliceInfoElem]>,
Din: Dimension,
Dout: Dimension,
fn as_ref(&self) -> &[SliceInfoElem]ⓘ[src]
impl<T, Din, Dout> Clone for SliceInfo<T, Din, Dout> where
T: Clone,
Din: Dimension,
Dout: Dimension, [src]
T: Clone,
Din: Dimension,
Dout: Dimension,
fn clone(&self) -> Self[src]
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
impl<T, Din, Dout> Copy for SliceInfo<T, Din, Dout> where
T: Copy,
Din: Dimension,
Dout: Dimension, [src]
T: Copy,
Din: Dimension,
Dout: Dimension,
impl<T: Debug, Din: Debug + Dimension, Dout: Debug + Dimension> Debug for SliceInfo<T, Din, Dout>[src]
impl<T, Din, Dout> Deref for SliceInfo<T, Din, Dout> where
Din: Dimension,
Dout: Dimension, [src]
Din: Dimension,
Dout: Dimension,
impl<'a, T, Din, Dout> From<&'a SliceInfo<T, Din, Dout>> for SliceInfo<&'a [SliceInfoElem], Din, Dout> where
T: AsRef<[SliceInfoElem]>,
Din: Dimension,
Dout: Dimension, [src]
T: AsRef<[SliceInfoElem]>,
Din: Dimension,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 0]>> for SliceInfo<T, Ix0, Dout> where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension, [src]
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
type OutDim = Dout
Dimensionality of the output array.
fn in_ndim(&self) -> usize[src]
fn out_ndim(&self) -> usize[src]
fn __private__(&self) -> PrivateMarker[src]
impl<T, Dout> SliceArg<Dim<[usize; 1]>> for SliceInfo<T, Ix1, Dout> where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension, [src]
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
type OutDim = Dout
Dimensionality of the output array.
fn in_ndim(&self) -> usize[src]
fn out_ndim(&self) -> usize[src]
fn __private__(&self) -> PrivateMarker[src]
impl<T, Dout> SliceArg<Dim<[usize; 2]>> for SliceInfo<T, Ix2, Dout> where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension, [src]
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
type OutDim = Dout
Dimensionality of the output array.
fn in_ndim(&self) -> usize[src]
fn out_ndim(&self) -> usize[src]
fn __private__(&self) -> PrivateMarker[src]
impl<T, Dout> SliceArg<Dim<[usize; 3]>> for SliceInfo<T, Ix3, Dout> where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension, [src]
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
type OutDim = Dout
Dimensionality of the output array.
fn in_ndim(&self) -> usize[src]
fn out_ndim(&self) -> usize[src]
fn __private__(&self) -> PrivateMarker[src]
impl<T, Dout> SliceArg<Dim<[usize; 4]>> for SliceInfo<T, Ix4, Dout> where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension, [src]
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
type OutDim = Dout
Dimensionality of the output array.
fn in_ndim(&self) -> usize[src]
fn out_ndim(&self) -> usize[src]
fn __private__(&self) -> PrivateMarker[src]
impl<T, Dout> SliceArg<Dim<[usize; 5]>> for SliceInfo<T, Ix5, Dout> where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension, [src]
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
type OutDim = Dout
Dimensionality of the output array.
fn in_ndim(&self) -> usize[src]
fn out_ndim(&self) -> usize[src]
fn __private__(&self) -> PrivateMarker[src]
impl<T, Dout> SliceArg<Dim<[usize; 6]>> for SliceInfo<T, Ix6, Dout> where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension, [src]
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
type OutDim = Dout
Dimensionality of the output array.
fn in_ndim(&self) -> usize[src]
fn out_ndim(&self) -> usize[src]
fn __private__(&self) -> PrivateMarker[src]
impl<T, Din, Dout> SliceArg<Dim<IxDynImpl>> for SliceInfo<T, Din, Dout> where
T: AsRef<[SliceInfoElem]>,
Din: Dimension,
Dout: Dimension, [src]
T: AsRef<[SliceInfoElem]>,
Din: Dimension,
Dout: Dimension,
type OutDim = Dout
Dimensionality of the output array.
fn in_ndim(&self) -> usize[src]
fn out_ndim(&self) -> usize[src]
fn __private__(&self) -> PrivateMarker[src]
impl<'a, Din, Dout> TryFrom<&'a [SliceInfoElem]> for SliceInfo<&'a [SliceInfoElem], Din, Dout> where
Din: Dimension,
Dout: Dimension, [src]
Din: Dimension,
Dout: Dimension,
type Error = ShapeError
The type returned in the event of a conversion error.
fn try_from(
indices: &'a [SliceInfoElem]
) -> Result<SliceInfo<&'a [SliceInfoElem], Din, Dout>, ShapeError>[src]
indices: &'a [SliceInfoElem]
) -> Result<SliceInfo<&'a [SliceInfoElem], Din, Dout>, ShapeError>
impl<Din, Dout> TryFrom<[SliceInfoElem; 0]> for SliceInfo<[SliceInfoElem; 0], Din, Dout> where
Din: Dimension,
Dout: Dimension, [src]
Din: Dimension,
Dout: Dimension,
type Error = ShapeError
The type returned in the event of a conversion error.
fn try_from(
indices: [SliceInfoElem; 0]
) -> Result<SliceInfo<[SliceInfoElem; 0], Din, Dout>, ShapeError>[src]
indices: [SliceInfoElem; 0]
) -> Result<SliceInfo<[SliceInfoElem; 0], Din, Dout>, ShapeError>
impl<Din, Dout> TryFrom<[SliceInfoElem; 1]> for SliceInfo<[SliceInfoElem; 1], Din, Dout> where
Din: Dimension,
Dout: Dimension, [src]
Din: Dimension,
Dout: Dimension,
type Error = ShapeError
The type returned in the event of a conversion error.
fn try_from(
indices: [SliceInfoElem; 1]
) -> Result<SliceInfo<[SliceInfoElem; 1], Din, Dout>, ShapeError>[src]
indices: [SliceInfoElem; 1]
) -> Result<SliceInfo<[SliceInfoElem; 1], Din, Dout>, ShapeError>
impl<Din, Dout> TryFrom<[SliceInfoElem; 2]> for SliceInfo<[SliceInfoElem; 2], Din, Dout> where
Din: Dimension,
Dout: Dimension, [src]
Din: Dimension,
Dout: Dimension,
type Error = ShapeError
The type returned in the event of a conversion error.
fn try_from(
indices: [SliceInfoElem; 2]
) -> Result<SliceInfo<[SliceInfoElem; 2], Din, Dout>, ShapeError>[src]
indices: [SliceInfoElem; 2]
) -> Result<SliceInfo<[SliceInfoElem; 2], Din, Dout>, ShapeError>
impl<Din, Dout> TryFrom<[SliceInfoElem; 3]> for SliceInfo<[SliceInfoElem; 3], Din, Dout> where
Din: Dimension,
Dout: Dimension, [src]
Din: Dimension,
Dout: Dimension,
type Error = ShapeError
The type returned in the event of a conversion error.
fn try_from(
indices: [SliceInfoElem; 3]
) -> Result<SliceInfo<[SliceInfoElem; 3], Din, Dout>, ShapeError>[src]
indices: [SliceInfoElem; 3]
) -> Result<SliceInfo<[SliceInfoElem; 3], Din, Dout>, ShapeError>
impl<Din, Dout> TryFrom<[SliceInfoElem; 4]> for SliceInfo<[SliceInfoElem; 4], Din, Dout> where
Din: Dimension,
Dout: Dimension, [src]
Din: Dimension,
Dout: Dimension,
type Error = ShapeError
The type returned in the event of a conversion error.
fn try_from(
indices: [SliceInfoElem; 4]
) -> Result<SliceInfo<[SliceInfoElem; 4], Din, Dout>, ShapeError>[src]
indices: [SliceInfoElem; 4]
) -> Result<SliceInfo<[SliceInfoElem; 4], Din, Dout>, ShapeError>
impl<Din, Dout> TryFrom<[SliceInfoElem; 5]> for SliceInfo<[SliceInfoElem; 5], Din, Dout> where
Din: Dimension,
Dout: Dimension, [src]
Din: Dimension,
Dout: Dimension,
type Error = ShapeError
The type returned in the event of a conversion error.
fn try_from(
indices: [SliceInfoElem; 5]
) -> Result<SliceInfo<[SliceInfoElem; 5], Din, Dout>, ShapeError>[src]
indices: [SliceInfoElem; 5]
) -> Result<SliceInfo<[SliceInfoElem; 5], Din, Dout>, ShapeError>
impl<Din, Dout> TryFrom<[SliceInfoElem; 6]> for SliceInfo<[SliceInfoElem; 6], Din, Dout> where
Din: Dimension,
Dout: Dimension, [src]
Din: Dimension,
Dout: Dimension,
type Error = ShapeError
The type returned in the event of a conversion error.
fn try_from(
indices: [SliceInfoElem; 6]
) -> Result<SliceInfo<[SliceInfoElem; 6], Din, Dout>, ShapeError>[src]
indices: [SliceInfoElem; 6]
) -> Result<SliceInfo<[SliceInfoElem; 6], Din, Dout>, ShapeError>
impl<Din, Dout> TryFrom<[SliceInfoElem; 7]> for SliceInfo<[SliceInfoElem; 7], Din, Dout> where
Din: Dimension,
Dout: Dimension, [src]
Din: Dimension,
Dout: Dimension,
type Error = ShapeError
The type returned in the event of a conversion error.
fn try_from(
indices: [SliceInfoElem; 7]
) -> Result<SliceInfo<[SliceInfoElem; 7], Din, Dout>, ShapeError>[src]
indices: [SliceInfoElem; 7]
) -> Result<SliceInfo<[SliceInfoElem; 7], Din, Dout>, ShapeError>
impl<Din, Dout> TryFrom<[SliceInfoElem; 8]> for SliceInfo<[SliceInfoElem; 8], Din, Dout> where
Din: Dimension,
Dout: Dimension, [src]
Din: Dimension,
Dout: Dimension,
type Error = ShapeError
The type returned in the event of a conversion error.
fn try_from(
indices: [SliceInfoElem; 8]
) -> Result<SliceInfo<[SliceInfoElem; 8], Din, Dout>, ShapeError>[src]
indices: [SliceInfoElem; 8]
) -> Result<SliceInfo<[SliceInfoElem; 8], Din, Dout>, ShapeError>
impl<Din, Dout> TryFrom<Vec<SliceInfoElem, Global>> for SliceInfo<Vec<SliceInfoElem>, Din, Dout> where
Din: Dimension,
Dout: Dimension, [src]
Din: Dimension,
Dout: Dimension,
type Error = ShapeError
The type returned in the event of a conversion error.
fn try_from(
indices: Vec<SliceInfoElem>
) -> Result<SliceInfo<Vec<SliceInfoElem>, Din, Dout>, ShapeError>[src]
indices: Vec<SliceInfoElem>
) -> Result<SliceInfo<Vec<SliceInfoElem>, Din, Dout>, ShapeError>
Auto Trait Implementations
impl<T, Din, Dout> RefUnwindSafe for SliceInfo<T, Din, Dout> where
Din: RefUnwindSafe,
Dout: RefUnwindSafe,
T: RefUnwindSafe,
Din: RefUnwindSafe,
Dout: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, Din, Dout> Send for SliceInfo<T, Din, Dout> where
T: Send,
T: Send,
impl<T, Din, Dout> Sync for SliceInfo<T, Din, Dout> where
T: Sync,
T: Sync,
impl<T, Din, Dout> Unpin for SliceInfo<T, Din, Dout> where
Din: Unpin,
Dout: Unpin,
T: Unpin,
Din: Unpin,
Dout: Unpin,
T: Unpin,
impl<T, Din, Dout> UnwindSafe for SliceInfo<T, Din, Dout> where
Din: UnwindSafe,
Dout: UnwindSafe,
T: UnwindSafe,
Din: UnwindSafe,
Dout: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T> ToOwned for T where
T: Clone, [src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn clone_into(&self, target: &mut T)[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,