pub trait Dimension:
Clone
+ Eq
+ Debug
+ Send
+ Sync
+ Default
+ IndexMut<usize, Output = usize>
+ Add<Output = Self>
+ AddAssign
+ for<'x> AddAssign<&'x Self>
+ Sub<Output = Self>
+ SubAssign
+ for<'x> SubAssign<&'x Self>
+ Mul<usize, Output = Self, Output = Self>
+ Mul
+ MulAssign
+ for<'x> MulAssign<&'x Self>
+ MulAssign<usize>
+ DimMax<Dim<[usize; 0]>, Output = Self, Output = Self, Output = Dim<IxDynImpl>, Output = Self, Output = Self::Larger>
+ DimMax<Self>
+ DimMax<Dim<IxDynImpl>>
+ DimMax<Self::Smaller>
+ DimMax<Self::Larger>
+ DimAdd<Self, Output = Self, Output = Self::Larger, Output = Dim<IxDynImpl>>
+ DimAdd<Self::Smaller>
+ DimAdd<Self::Larger>
+ DimAdd<Dim<[usize; 0]>>
+ DimAdd<Dim<[usize; 1]>>
+ DimAdd<Dim<IxDynImpl>> {
type Pattern: IntoDimension<Dim = Self> + Clone + Debug + PartialEq + Eq + Default;
type Smaller: Dimension;
type Larger: Dimension + RemoveAxis;
const NDIM: Option<usize>;
// Required methods
fn ndim(&self) -> usize;
fn into_pattern(self) -> Self::Pattern;
fn zeros(ndim: usize) -> Self;
// Provided methods
fn size(&self) -> usize { ... }
fn size_checked(&self) -> Option<usize> { ... }
fn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>> { ... }
fn as_array_view_mut(
&mut self,
) -> ArrayBase<ViewRepr<&mut usize>, Dim<[usize; 1]>> { ... }
fn into_dyn(self) -> Dim<IxDynImpl> { ... }
}
Expand description
Array shape and index trait.
This trait defines a number of methods and operations that can be used on dimensions and indices.
Note: This trait can not be implemented outside the crate
Required Associated Constants§
Required Associated Types§
Sourcetype Pattern: IntoDimension<Dim = Self> + Clone + Debug + PartialEq + Eq + Default
type Pattern: IntoDimension<Dim = Self> + Clone + Debug + PartialEq + Eq + Default
Pattern matching friendly form of the dimension value.
- For
Ix1
:usize
, - For
Ix2
:(usize, usize)
- and so on..
- For
IxDyn
:IxDyn
Sourcetype Larger: Dimension + RemoveAxis
type Larger: Dimension + RemoveAxis
Next larger dimension
Required Methods§
Sourcefn into_pattern(self) -> Self::Pattern
fn into_pattern(self) -> Self::Pattern
Convert the dimension into a pattern matching friendly value.
Provided Methods§
Sourcefn size_checked(&self) -> Option<usize>
fn size_checked(&self) -> Option<usize>
Compute the size while checking for overflow.
Sourcefn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
fn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
Borrow as a read-only array view.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementors§
Source§impl Dimension for Dim<IxDynImpl>
impl Dimension for Dim<IxDynImpl>
IxDyn is a “dynamic” index, pretty hard to use when indexing, and memory wasteful, but it allows an arbitrary and dynamic number of axes.