Struct tract_core::internal::tract_ndarray::SliceInfo
source · pub struct SliceInfo<T, Din, Dout>where
Din: Dimension,
Dout: Dimension,{ /* 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>where
T: AsRef<[SliceInfoElem]>,
Din: Dimension,
Dout: Dimension,
impl<T, Din, Dout> SliceInfo<T, Din, Dout>where T: AsRef<[SliceInfoElem]>, Din: Dimension, Dout: Dimension,
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>where
T: AsRef<[SliceInfoElem]>,
Din: Dimension,
Dout: Dimension,
impl<T, Din, Dout> AsRef<[SliceInfoElem]> for SliceInfo<T, Din, Dout>where T: AsRef<[SliceInfoElem]>, Din: Dimension, Dout: Dimension,
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<T, Din, Dout> Clone for SliceInfo<T, Din, Dout>where
T: Clone,
Din: Dimension,
Dout: Dimension,
impl<T, Din, Dout> Clone for SliceInfo<T, Din, Dout>where T: Clone, Din: Dimension, Dout: Dimension,
source§impl<T, Din, Dout> Debug for SliceInfo<T, Din, Dout>where
T: Debug,
Din: Debug + Dimension,
Dout: Debug + Dimension,
impl<T, Din, Dout> Debug for SliceInfo<T, Din, Dout>where T: Debug, Din: Debug + Dimension, Dout: Debug + Dimension,
source§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,
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,
source§impl<T, Dout> SliceArg<Dim<[usize; 0]>> for SliceInfo<T, Dim<[usize; 0]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 0]>> for SliceInfo<T, Dim<[usize; 0]>, Dout>where T: AsRef<[SliceInfoElem]>, Dout: Dimension,
source§impl<T, Dout> SliceArg<Dim<[usize; 1]>> for SliceInfo<T, Dim<[usize; 1]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 1]>> for SliceInfo<T, Dim<[usize; 1]>, Dout>where T: AsRef<[SliceInfoElem]>, Dout: Dimension,
source§impl<T, Dout> SliceArg<Dim<[usize; 2]>> for SliceInfo<T, Dim<[usize; 2]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 2]>> for SliceInfo<T, Dim<[usize; 2]>, Dout>where T: AsRef<[SliceInfoElem]>, Dout: Dimension,
source§impl<T, Dout> SliceArg<Dim<[usize; 3]>> for SliceInfo<T, Dim<[usize; 3]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 3]>> for SliceInfo<T, Dim<[usize; 3]>, Dout>where T: AsRef<[SliceInfoElem]>, Dout: Dimension,
source§impl<T, Dout> SliceArg<Dim<[usize; 4]>> for SliceInfo<T, Dim<[usize; 4]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 4]>> for SliceInfo<T, Dim<[usize; 4]>, Dout>where T: AsRef<[SliceInfoElem]>, Dout: Dimension,
source§impl<T, Dout> SliceArg<Dim<[usize; 5]>> for SliceInfo<T, Dim<[usize; 5]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 5]>> for SliceInfo<T, Dim<[usize; 5]>, Dout>where T: AsRef<[SliceInfoElem]>, Dout: Dimension,
source§impl<T, Dout> SliceArg<Dim<[usize; 6]>> for SliceInfo<T, Dim<[usize; 6]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 6]>> for SliceInfo<T, Dim<[usize; 6]>, Dout>where T: AsRef<[SliceInfoElem]>, Dout: Dimension,
source§impl<T, Din, Dout> SliceArg<Dim<IxDynImpl>> for SliceInfo<T, Din, Dout>where
T: AsRef<[SliceInfoElem]>,
Din: Dimension,
Dout: Dimension,
impl<T, Din, Dout> SliceArg<Dim<IxDynImpl>> for SliceInfo<T, Din, Dout>where T: AsRef<[SliceInfoElem]>, Din: Dimension, Dout: Dimension,
source§impl<'a, Din, Dout> TryFrom<&'a [SliceInfoElem]> for SliceInfo<&'a [SliceInfoElem], Din, Dout>where
Din: Dimension,
Dout: Dimension,
impl<'a, Din, Dout> TryFrom<&'a [SliceInfoElem]> for SliceInfo<&'a [SliceInfoElem], Din, Dout>where Din: Dimension, Dout: Dimension,
§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>where
Din: Dimension,
Dout: Dimension,
impl<Din, Dout> TryFrom<[SliceInfoElem; 0]> for SliceInfo<[SliceInfoElem; 0], Din, Dout>where Din: Dimension, Dout: Dimension,
§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>where
Din: Dimension,
Dout: Dimension,
impl<Din, Dout> TryFrom<[SliceInfoElem; 1]> for SliceInfo<[SliceInfoElem; 1], Din, Dout>where Din: Dimension, Dout: Dimension,
§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>where
Din: Dimension,
Dout: Dimension,
impl<Din, Dout> TryFrom<[SliceInfoElem; 2]> for SliceInfo<[SliceInfoElem; 2], Din, Dout>where Din: Dimension, Dout: Dimension,
§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>where
Din: Dimension,
Dout: Dimension,
impl<Din, Dout> TryFrom<[SliceInfoElem; 3]> for SliceInfo<[SliceInfoElem; 3], Din, Dout>where Din: Dimension, Dout: Dimension,
§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>where
Din: Dimension,
Dout: Dimension,
impl<Din, Dout> TryFrom<[SliceInfoElem; 4]> for SliceInfo<[SliceInfoElem; 4], Din, Dout>where Din: Dimension, Dout: Dimension,
§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>where
Din: Dimension,
Dout: Dimension,
impl<Din, Dout> TryFrom<[SliceInfoElem; 5]> for SliceInfo<[SliceInfoElem; 5], Din, Dout>where Din: Dimension, Dout: Dimension,
§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>where
Din: Dimension,
Dout: Dimension,
impl<Din, Dout> TryFrom<[SliceInfoElem; 6]> for SliceInfo<[SliceInfoElem; 6], Din, Dout>where Din: Dimension, Dout: Dimension,
§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>where
Din: Dimension,
Dout: Dimension,
impl<Din, Dout> TryFrom<[SliceInfoElem; 7]> for SliceInfo<[SliceInfoElem; 7], Din, Dout>where Din: Dimension, Dout: Dimension,
§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>where
Din: Dimension,
Dout: Dimension,
impl<Din, Dout> TryFrom<[SliceInfoElem; 8]> for SliceInfo<[SliceInfoElem; 8], Din, Dout>where Din: Dimension, Dout: Dimension,
§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, Global>> for SliceInfo<Vec<SliceInfoElem, Global>, Din, Dout>where
Din: Dimension,
Dout: Dimension,
impl<Din, Dout> TryFrom<Vec<SliceInfoElem, Global>> for SliceInfo<Vec<SliceInfoElem, Global>, Din, Dout>where Din: Dimension, Dout: Dimension,
§type Error = ShapeError
type Error = ShapeError
The type returned in the event of a conversion error.
source§fn try_from(
indices: Vec<SliceInfoElem, Global>
) -> Result<SliceInfo<Vec<SliceInfoElem, Global>, Din, Dout>, ShapeError>
fn try_from( indices: Vec<SliceInfoElem, Global> ) -> Result<SliceInfo<Vec<SliceInfoElem, Global>, Din, Dout>, ShapeError>
Performs the conversion.
impl<T, Din, Dout> Copy for SliceInfo<T, Din, Dout>where T: Copy, Din: Dimension, Dout: Dimension,
Auto Trait Implementations§
impl<T, Din, Dout> RefUnwindSafe for SliceInfo<T, Din, Dout>where Din: RefUnwindSafe, Dout: RefUnwindSafe, T: RefUnwindSafe,
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>where Din: Unpin, Dout: Unpin, T: Unpin,
impl<T, Din, Dout> UnwindSafe for SliceInfo<T, Din, Dout>where Din: UnwindSafe, Dout: UnwindSafe, T: UnwindSafe,
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
source§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.