pub trait Shape: 'static + Debug + Clone + Copy + Send + Sync + Eq + PartialEq + HasAxes<Self::AllAxes> + HasAxes<Self::LastAxis> + ReduceShapeTo<(), Self::AllAxes> + ReduceShape<Self::LastAxis> {
type Concrete: Debug + Clone + Copy + Default + Eq + PartialEq + Index<usize, Output = usize> + IndexMut<usize> + Send + Sync + IntoIterator<Item = usize> + Into<Vec<usize>> + AsRef<[usize]>;
type AllAxes: Axes;
type LastAxis: Axes;
const NUM_DIMS: usize;
// Required methods
fn concrete(&self) -> Self::Concrete;
fn from_concrete(concrete: &Self::Concrete) -> Option<Self>;
// Provided methods
fn num_elements(&self) -> usize { ... }
fn strides(&self) -> Self::Concrete { ... }
}
Expand description
A collection of dimensions (Dim) that change how a multi-dimensional array is interacted with.
Required Associated Types§
Required Associated Constants§
Required Methods§
fn concrete(&self) -> Self::Concrete
fn from_concrete(concrete: &Self::Concrete) -> Option<Self>
Provided Methods§
sourcefn num_elements(&self) -> usize
fn num_elements(&self) -> usize
The number of elements in this shape; the product of all dimensions.