pub struct SliceInfo<T, Din, Dout>{ /* private fields */ }Expand description
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]
Converts this type into a shared reference of the (usually inferred) input type.
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
The type returned in the event of a conversion error.
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>
Performs the conversion.
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
The type returned in the event of a conversion error.
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>
Performs the conversion.
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
The type returned in the event of a conversion error.
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>
Performs the conversion.
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
The type returned in the event of a conversion error.
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>
Performs the conversion.
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
The type returned in the event of a conversion error.
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>
Performs the conversion.
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
The type returned in the event of a conversion error.
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>
Performs the conversion.
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
The type returned in the event of a conversion error.
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>
Performs the conversion.
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
The type returned in the event of a conversion error.
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>
Performs the conversion.
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
The type returned in the event of a conversion error.
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>
Performs the conversion.
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
The type returned in the event of a conversion error.
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>
Performs the conversion.
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
The type returned in the event of a conversion error.
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>
Performs the conversion.
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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 more