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".
Implementors§
Source§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.
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.