pub struct SliceInfo<T, Din, Dout>{ /* private fields */ }Expand description
Re-export essential ndarray types and macros for convenience Use ::ndarray to refer to the external crate directly 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§
Source§impl<T, Din, Dout> SliceInfo<T, Din, Dout>
impl<T, Din, Dout> SliceInfo<T, Din, Dout>
Sourcepub unsafe fn new(indices: T) -> Result<SliceInfo<T, Din, Dout>, ShapeError>
pub unsafe fn new(indices: T) -> Result<SliceInfo<T, Din, Dout>, ShapeError>
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.
Trait Implementations§
Source§impl<T, Din, Dout> AsRef<[SliceInfoElem]> for SliceInfo<T, Din, Dout>
impl<T, Din, Dout> AsRef<[SliceInfoElem]> for SliceInfo<T, Din, Dout>
Source§fn as_ref(&self) -> &[SliceInfoElem]
fn as_ref(&self) -> &[SliceInfoElem]
Source§impl<'a, T, Din, Dout> From<&'a SliceInfo<T, Din, Dout>> for SliceInfo<&'a [SliceInfoElem], Din, Dout>
impl<'a, T, Din, Dout> From<&'a SliceInfo<T, Din, Dout>> for SliceInfo<&'a [SliceInfoElem], Din, Dout>
Source§impl<'a, Din, Dout> TryFrom<&'a [SliceInfoElem]> for SliceInfo<&'a [SliceInfoElem], Din, Dout>
impl<'a, Din, Dout> TryFrom<&'a [SliceInfoElem]> for SliceInfo<&'a [SliceInfoElem], Din, Dout>
Source§type Error = ShapeError
type Error = ShapeError
Source§fn try_from(
indices: &'a [SliceInfoElem],
) -> Result<SliceInfo<&'a [SliceInfoElem], Din, Dout>, ShapeError>
fn try_from( indices: &'a [SliceInfoElem], ) -> Result<SliceInfo<&'a [SliceInfoElem], Din, Dout>, ShapeError>
Source§impl<Din, Dout> TryFrom<[SliceInfoElem; 0]> for SliceInfo<[SliceInfoElem; 0], Din, Dout>
impl<Din, Dout> TryFrom<[SliceInfoElem; 0]> for SliceInfo<[SliceInfoElem; 0], Din, Dout>
Source§type Error = ShapeError
type Error = ShapeError
Source§fn try_from(
indices: [SliceInfoElem; 0],
) -> Result<SliceInfo<[SliceInfoElem; 0], Din, Dout>, ShapeError>
fn try_from( indices: [SliceInfoElem; 0], ) -> Result<SliceInfo<[SliceInfoElem; 0], Din, Dout>, ShapeError>
Source§impl<Din, Dout> TryFrom<[SliceInfoElem; 1]> for SliceInfo<[SliceInfoElem; 1], Din, Dout>
impl<Din, Dout> TryFrom<[SliceInfoElem; 1]> for SliceInfo<[SliceInfoElem; 1], Din, Dout>
Source§type Error = ShapeError
type Error = ShapeError
Source§fn try_from(
indices: [SliceInfoElem; 1],
) -> Result<SliceInfo<[SliceInfoElem; 1], Din, Dout>, ShapeError>
fn try_from( indices: [SliceInfoElem; 1], ) -> Result<SliceInfo<[SliceInfoElem; 1], Din, Dout>, ShapeError>
Source§impl<Din, Dout> TryFrom<[SliceInfoElem; 2]> for SliceInfo<[SliceInfoElem; 2], Din, Dout>
impl<Din, Dout> TryFrom<[SliceInfoElem; 2]> for SliceInfo<[SliceInfoElem; 2], Din, Dout>
Source§type Error = ShapeError
type Error = ShapeError
Source§fn try_from(
indices: [SliceInfoElem; 2],
) -> Result<SliceInfo<[SliceInfoElem; 2], Din, Dout>, ShapeError>
fn try_from( indices: [SliceInfoElem; 2], ) -> Result<SliceInfo<[SliceInfoElem; 2], Din, Dout>, ShapeError>
Source§impl<Din, Dout> TryFrom<[SliceInfoElem; 3]> for SliceInfo<[SliceInfoElem; 3], Din, Dout>
impl<Din, Dout> TryFrom<[SliceInfoElem; 3]> for SliceInfo<[SliceInfoElem; 3], Din, Dout>
Source§type Error = ShapeError
type Error = ShapeError
Source§fn try_from(
indices: [SliceInfoElem; 3],
) -> Result<SliceInfo<[SliceInfoElem; 3], Din, Dout>, ShapeError>
fn try_from( indices: [SliceInfoElem; 3], ) -> Result<SliceInfo<[SliceInfoElem; 3], Din, Dout>, ShapeError>
Source§impl<Din, Dout> TryFrom<[SliceInfoElem; 4]> for SliceInfo<[SliceInfoElem; 4], Din, Dout>
impl<Din, Dout> TryFrom<[SliceInfoElem; 4]> for SliceInfo<[SliceInfoElem; 4], Din, Dout>
Source§type Error = ShapeError
type Error = ShapeError
Source§fn try_from(
indices: [SliceInfoElem; 4],
) -> Result<SliceInfo<[SliceInfoElem; 4], Din, Dout>, ShapeError>
fn try_from( indices: [SliceInfoElem; 4], ) -> Result<SliceInfo<[SliceInfoElem; 4], Din, Dout>, ShapeError>
Source§impl<Din, Dout> TryFrom<[SliceInfoElem; 5]> for SliceInfo<[SliceInfoElem; 5], Din, Dout>
impl<Din, Dout> TryFrom<[SliceInfoElem; 5]> for SliceInfo<[SliceInfoElem; 5], Din, Dout>
Source§type Error = ShapeError
type Error = ShapeError
Source§fn try_from(
indices: [SliceInfoElem; 5],
) -> Result<SliceInfo<[SliceInfoElem; 5], Din, Dout>, ShapeError>
fn try_from( indices: [SliceInfoElem; 5], ) -> Result<SliceInfo<[SliceInfoElem; 5], Din, Dout>, ShapeError>
Source§impl<Din, Dout> TryFrom<[SliceInfoElem; 6]> for SliceInfo<[SliceInfoElem; 6], Din, Dout>
impl<Din, Dout> TryFrom<[SliceInfoElem; 6]> for SliceInfo<[SliceInfoElem; 6], Din, Dout>
Source§type Error = ShapeError
type Error = ShapeError
Source§fn try_from(
indices: [SliceInfoElem; 6],
) -> Result<SliceInfo<[SliceInfoElem; 6], Din, Dout>, ShapeError>
fn try_from( indices: [SliceInfoElem; 6], ) -> Result<SliceInfo<[SliceInfoElem; 6], Din, Dout>, ShapeError>
Source§impl<Din, Dout> TryFrom<[SliceInfoElem; 7]> for SliceInfo<[SliceInfoElem; 7], Din, Dout>
impl<Din, Dout> TryFrom<[SliceInfoElem; 7]> for SliceInfo<[SliceInfoElem; 7], Din, Dout>
Source§type Error = ShapeError
type Error = ShapeError
Source§fn try_from(
indices: [SliceInfoElem; 7],
) -> Result<SliceInfo<[SliceInfoElem; 7], Din, Dout>, ShapeError>
fn try_from( indices: [SliceInfoElem; 7], ) -> Result<SliceInfo<[SliceInfoElem; 7], Din, Dout>, ShapeError>
Source§impl<Din, Dout> TryFrom<[SliceInfoElem; 8]> for SliceInfo<[SliceInfoElem; 8], Din, Dout>
impl<Din, Dout> TryFrom<[SliceInfoElem; 8]> for SliceInfo<[SliceInfoElem; 8], Din, Dout>
Source§type Error = ShapeError
type Error = ShapeError
Source§fn try_from(
indices: [SliceInfoElem; 8],
) -> Result<SliceInfo<[SliceInfoElem; 8], Din, Dout>, ShapeError>
fn try_from( indices: [SliceInfoElem; 8], ) -> Result<SliceInfo<[SliceInfoElem; 8], Din, Dout>, ShapeError>
Source§impl<Din, Dout> TryFrom<Vec<SliceInfoElem>> for SliceInfo<Vec<SliceInfoElem>, Din, Dout>
impl<Din, Dout> TryFrom<Vec<SliceInfoElem>> for SliceInfo<Vec<SliceInfoElem>, Din, Dout>
Source§type Error = ShapeError
type Error = ShapeError
Source§fn try_from(
indices: Vec<SliceInfoElem>,
) -> Result<SliceInfo<Vec<SliceInfoElem>, Din, Dout>, ShapeError>
fn try_from( indices: Vec<SliceInfoElem>, ) -> Result<SliceInfo<Vec<SliceInfoElem>, Din, Dout>, ShapeError>
impl<T, Din, Dout> Copy for SliceInfo<T, Din, Dout>
Auto Trait Implementations§
impl<T, Din, Dout> Freeze for SliceInfo<T, Din, Dout>where
T: Freeze,
impl<T, Din, Dout> RefUnwindSafe for SliceInfo<T, Din, Dout>
impl<T, Din, Dout> Send for SliceInfo<T, Din, Dout>where
T: Send,
impl<T, Din, Dout> Sync for SliceInfo<T, Din, Dout>where
T: Sync,
impl<T, Din, Dout> Unpin for SliceInfo<T, Din, Dout>
impl<T, Din, Dout> UnwindSafe for SliceInfo<T, Din, Dout>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.