#[repr(transparent)]pub struct Array<T, S: ConstShape>(pub S::Inner<T>);Expand description
Multidimensional array with constant-sized dimensions and inline allocation.
Tuple Fields§
§0: S::Inner<T>Implementations§
Source§impl<T, S: ConstShape> Array<T, S>
impl<T, S: ConstShape> Array<T, S>
Sourcepub fn from_fn<F: FnMut(&[usize]) -> T>(f: F) -> Self
pub fn from_fn<F: FnMut(&[usize]) -> T>(f: F) -> Self
Creates an array with the results from the given function.
Sourcepub fn into_scalar(self) -> T
pub fn into_scalar(self) -> T
Converts an array with a single element into the contained value.
§Panics
Panics if the array length is not equal to one.
Sourcepub fn into_shape<I: ConstShape>(self) -> Array<T, I>
pub fn into_shape<I: ConstShape>(self) -> Array<T, I>
Converts the array into a reshaped array, which must have the same length.
§Panics
Panics if the array length is changed.
Sourcepub fn map<U, F: FnMut(T) -> U>(self, f: F) -> Array<U, S>
pub fn map<U, F: FnMut(T) -> U>(self, f: F) -> Array<U, S>
Returns an array with the same shape, and the given closure applied to each element.
Sourcepub fn uninit() -> Array<MaybeUninit<T>, S>
pub fn uninit() -> Array<MaybeUninit<T>, S>
Creates an array with uninitialized elements.
Source§impl<T, S: ConstShape> Array<MaybeUninit<T>, S>
impl<T, S: ConstShape> Array<MaybeUninit<T>, S>
Sourcepub unsafe fn assume_init(self) -> Array<T, S>
pub unsafe fn assume_init(self) -> Array<T, S>
Converts the array element type from MaybeUninit<T> to T.
§Safety
All elements in the array must be initialized, or the behavior is undefined.
Methods from Deref<Target = Slice<T, S>>§
Sourcepub fn as_mut_ptr(&mut self) -> *mut T
pub fn as_mut_ptr(&mut self) -> *mut T
Returns a mutable pointer to the array buffer.
Sourcepub fn assign<I: IntoExpression<Item: IntoCloned<T>>>(&mut self, expr: I)
pub fn assign<I: IntoExpression<Item: IntoCloned<T>>>(&mut self, expr: I)
Assigns an expression to the array slice with broadcasting, cloning elements if needed.
§Panics
Panics if the expression cannot be broadcast to the shape of the array slice.
Sourcepub fn at(&self, index: usize) -> View<'_, T, S::Tail, L>
pub fn at(&self, index: usize) -> View<'_, T, S::Tail, L>
Returns an array view after indexing the first dimension.
§Panics
Panics if the index is out of bounds, or if the rank is not at least 1.
Sourcepub fn at_mut(&mut self, index: usize) -> ViewMut<'_, T, S::Tail, L>
pub fn at_mut(&mut self, index: usize) -> ViewMut<'_, T, S::Tail, L>
Returns a mutable array view after indexing the first dimension.
§Panics
Panics if the index is out of bounds, or if the rank is not at least 1.
Sourcepub fn axis_at<A: Axis>(
&self,
axis: A,
index: usize,
) -> View<'_, T, A::Remove<S>, Split<A, S, L>>
pub fn axis_at<A: Axis>( &self, axis: A, index: usize, ) -> View<'_, T, A::Remove<S>, Split<A, S, L>>
Returns an array view after indexing the specified dimension.
If the dimension to be indexed is know at compile time, the resulting array shape will maintain constant-sized dimensions. Furthermore, if it is the first dimension the resulting array view has the same layout as the input.
§Panics
Panics if the dimension or the index is out of bounds.
Sourcepub fn axis_at_mut<A: Axis>(
&mut self,
axis: A,
index: usize,
) -> ViewMut<'_, T, A::Remove<S>, Split<A, S, L>>
pub fn axis_at_mut<A: Axis>( &mut self, axis: A, index: usize, ) -> ViewMut<'_, T, A::Remove<S>, Split<A, S, L>>
Returns a mutable array view after indexing the specified dimension.
If the dimension to be indexed is know at compile time, the resulting array shape will maintain constant-sized dimensions. Furthermore, if it is the first dimension the resulting array view has the same layout as the input.
§Panics
Panics if the dimension or the index is out of bounds.
Sourcepub fn axis_expr<A: Axis>(&self, axis: A) -> AxisExpr<'_, T, S, L, A>
pub fn axis_expr<A: Axis>(&self, axis: A) -> AxisExpr<'_, T, S, L, A>
Returns an expression that gives array views iterating over the specified dimension.
If the dimension to be iterated over is know at compile time, the resulting array shape will maintain constant-sized dimensions. Furthermore, if it is the first dimension the resulting array views have the same layout as the input.
§Panics
Panics if the dimension is out of bounds.
Sourcepub fn axis_expr_mut<A: Axis>(&mut self, axis: A) -> AxisExprMut<'_, T, S, L, A>
pub fn axis_expr_mut<A: Axis>(&mut self, axis: A) -> AxisExprMut<'_, T, S, L, A>
Returns a mutable expression that gives array views iterating over the specified dimension.
If the dimension to be iterated over is know at compile time, the resulting array shape will maintain constant-sized dimensions. Furthermore, if it is the first dimension the resulting array views have the same layout as the input.
§Panics
Panics if the dimension is out of bounds.
Sourcepub fn col(&self, index: usize) -> View<'_, T, (S::Head,), Strided>
pub fn col(&self, index: usize) -> View<'_, T, (S::Head,), Strided>
Returns an array view for the specified column.
§Panics
Panics if the rank is not equal to 2, or if the index is out of bounds.
Sourcepub fn col_mut(&mut self, index: usize) -> ViewMut<'_, T, (S::Head,), Strided>
pub fn col_mut(&mut self, index: usize) -> ViewMut<'_, T, (S::Head,), Strided>
Returns a mutable array view for the specified column.
§Panics
Panics if the rank is not equal to 2, or if the index is out of bounds.
Sourcepub fn cols(&self) -> Lanes<'_, T, S, L, Cols>
pub fn cols(&self) -> Lanes<'_, T, S, L, Cols>
Returns an expression that gives column views iterating over the other dimensions.
§Panics
Panics if the rank is not at least 2.
Sourcepub fn cols_mut(&mut self) -> LanesMut<'_, T, S, L, Cols>
pub fn cols_mut(&mut self) -> LanesMut<'_, T, S, L, Cols>
Returns a mutable expression that gives column views iterating over the other dimensions.
§Panics
Panics if the rank is not at least 2.
Sourcepub fn contains(&self, x: &T) -> boolwhere
T: PartialEq,
pub fn contains(&self, x: &T) -> boolwhere
T: PartialEq,
Returns true if the array slice contains an element with the given value.
Sourcepub fn diag(&self, index: isize) -> View<'_, T, (Dyn,), Strided>
pub fn diag(&self, index: isize) -> View<'_, T, (Dyn,), Strided>
Returns an array view for the given diagonal of the array slice,
where index > 0 is above and index < 0 is below the main diagonal.
§Panics
Panics if the rank is not equal to 2, or if the absolute index is larger than the number of columns or rows.
Sourcepub fn diag_mut(&mut self, index: isize) -> ViewMut<'_, T, (Dyn,), Strided>
pub fn diag_mut(&mut self, index: isize) -> ViewMut<'_, T, (Dyn,), Strided>
Returns a mutable array view for the given diagonal of the array slice,
where index > 0 is above and index < 0 is below the main diagonal.
§Panics
Panics if the rank is not equal to 2, or if the absolute index is larger than the number of columns or rows.
Sourcepub fn dim(&self, index: usize) -> usize
pub fn dim(&self, index: usize) -> usize
Returns the number of elements in the specified dimension.
§Panics
Panics if the dimension is out of bounds.
Sourcepub fn expr_mut(&mut self) -> ViewMut<'_, T, S, L>
pub fn expr_mut(&mut self) -> ViewMut<'_, T, S, L>
Returns a mutable expression over the array slice.
Sourcepub fn fill(&mut self, value: T)where
T: Clone,
pub fn fill(&mut self, value: T)where
T: Clone,
Fills the array slice with elements by cloning value.
Sourcepub fn fill_with<F: FnMut() -> T>(&mut self, f: F)
pub fn fill_with<F: FnMut() -> T>(&mut self, f: F)
Fills the array slice with elements returned by calling a closure repeatedly.
Sourcepub fn flatten(&self) -> View<'_, T, (Dyn,), L>
pub fn flatten(&self) -> View<'_, T, (Dyn,), L>
Returns a one-dimensional array view of the array slice.
§Panics
Panics if the array layout is not uniformly strided.
Sourcepub fn flatten_mut(&mut self) -> ViewMut<'_, T, (Dyn,), L>
pub fn flatten_mut(&mut self) -> ViewMut<'_, T, (Dyn,), L>
Returns a mutable one-dimensional array view over the array slice.
§Panics
Panics if the array layout is not uniformly strided.
Sourcepub unsafe fn get_unchecked<I: SliceIndex<T, S, L>>(
&self,
index: I,
) -> &I::Output
pub unsafe fn get_unchecked<I: SliceIndex<T, S, L>>( &self, index: I, ) -> &I::Output
Returns a reference to an element or a subslice, without doing bounds checking.
§Safety
The index must be within bounds of the array slice.
Sourcepub unsafe fn get_unchecked_mut<I: SliceIndex<T, S, L>>(
&mut self,
index: I,
) -> &mut I::Output
pub unsafe fn get_unchecked_mut<I: SliceIndex<T, S, L>>( &mut self, index: I, ) -> &mut I::Output
Returns a mutable reference to an element or a subslice, without doing bounds checking.
§Safety
The index must be within bounds of the array slice.
Sourcepub fn is_contiguous(&self) -> bool
pub fn is_contiguous(&self) -> bool
Returns true if the array strides are consistent with contiguous memory layout.
Sourcepub fn iter_mut(&mut self) -> Iter<ViewMut<'_, T, S, L>> ⓘ
pub fn iter_mut(&mut self) -> Iter<ViewMut<'_, T, S, L>> ⓘ
Returns a mutable iterator over the array slice.
Sourcepub fn lanes<A: Axis>(&self, axis: A) -> Lanes<'_, T, S, L, A>
pub fn lanes<A: Axis>(&self, axis: A) -> Lanes<'_, T, S, L, A>
Returns an expression that gives array views over the specified dimension, iterating over the other dimensions.
If the dimension to give array views over is know at compile time, the resulting shape will maintain a constant-sized dimension. Furthermore, if it is the last dimension the resulting array views have the same layout as the input.
§Panics
Panics if the dimension is out of bounds.
Sourcepub fn lanes_mut<A: Axis>(&mut self, axis: A) -> LanesMut<'_, T, S, L, A>
pub fn lanes_mut<A: Axis>(&mut self, axis: A) -> LanesMut<'_, T, S, L, A>
Returns a mutable expression that gives array views over the specified dimension, iterating over the other dimensions.
If the dimension to give array views over is know at compile time, the resulting shape will maintain a constant-sized dimension. Furthermore, if it is the last dimension the resulting array views have the same layout as the input.
§Panics
Panics if the dimension is out of bounds.
Sourcepub fn outer_expr(&self) -> AxisExpr<'_, T, S, L, Const<0>>
pub fn outer_expr(&self) -> AxisExpr<'_, T, S, L, Const<0>>
Returns an expression that gives array views iterating over the first dimension.
Iterating over the first dimension results in array views with the same layout as the input.
§Panics
Panics if the rank is not at least 1.
Sourcepub fn outer_expr_mut(&mut self) -> AxisExprMut<'_, T, S, L, Const<0>>
pub fn outer_expr_mut(&mut self) -> AxisExprMut<'_, T, S, L, Const<0>>
Returns a mutable expression that gives array views iterating over the first dimension.
Iterating over the first dimension results in array views with the same layout as the input.
§Panics
Panics if the rank is not at least 1.
Sourcepub fn permute<I: IntoShape<IntoShape: Permutation>>(
&self,
perm: I,
) -> View<'_, T, <I::IntoShape as Permutation>::Shape<S>, <I::IntoShape as Permutation>::Layout<L>>
pub fn permute<I: IntoShape<IntoShape: Permutation>>( &self, perm: I, ) -> View<'_, T, <I::IntoShape as Permutation>::Shape<S>, <I::IntoShape as Permutation>::Layout<L>>
Returns an array view with the dimensions permuted.
If the permutation is an identity permutation and known at compile time, the
resulting array view has the same layout as the input. For example, permuting
with (Const::<0>, Const::<1>) will maintain the layout while permuting with
[0, 1] gives strided layout.
§Panics
Panics if the permutation is not valid.
Sourcepub fn permute_mut<I: IntoShape<IntoShape: Permutation>>(
&mut self,
perm: I,
) -> ViewMut<'_, T, <I::IntoShape as Permutation>::Shape<S>, <I::IntoShape as Permutation>::Layout<L>>
pub fn permute_mut<I: IntoShape<IntoShape: Permutation>>( &mut self, perm: I, ) -> ViewMut<'_, T, <I::IntoShape as Permutation>::Shape<S>, <I::IntoShape as Permutation>::Layout<L>>
Returns a mutable array view with the dimensions permuted.
If the permutation is an identity permutation and known at compile time, the
resulting array view has the same layout as the input. For example, permuting
with (Const::<0>, Const::<1>) will maintain the layout while permuting with
[0, 1] gives strided layout.
§Panics
Panics if the permutation is not valid.
Sourcepub fn remap<R: Shape, K: Layout>(&self) -> View<'_, T, R, K>
pub fn remap<R: Shape, K: Layout>(&self) -> View<'_, T, R, K>
Returns a remapped array view of the array slice.
§Panics
Panics if the memory layout is not compatible with the new array layout.
Sourcepub fn remap_mut<R: Shape, K: Layout>(&mut self) -> ViewMut<'_, T, R, K>
pub fn remap_mut<R: Shape, K: Layout>(&mut self) -> ViewMut<'_, T, R, K>
Returns a mutable remapped array view of the array slice.
§Panics
Panics if the memory layout is not compatible with the new array layout.
Sourcepub fn reorder(&self) -> View<'_, T, S::Reverse, <S::Tail as Shape>::Layout<L>>
👎Deprecated
pub fn reorder(&self) -> View<'_, T, S::Reverse, <S::Tail as Shape>::Layout<L>>
Returns a reordered array view of the array slice.
This method is deprecated, use transpose instead.
Sourcepub fn reorder_mut(
&mut self,
) -> ViewMut<'_, T, S::Reverse, <S::Tail as Shape>::Layout<L>>
👎Deprecated
pub fn reorder_mut( &mut self, ) -> ViewMut<'_, T, S::Reverse, <S::Tail as Shape>::Layout<L>>
Returns a mutable reordered array view of the array slice.
This method is deprecated, use transpose_mut instead.
Sourcepub fn reshape<I: IntoShape>(&self, shape: I) -> View<'_, T, I::IntoShape, L>
pub fn reshape<I: IntoShape>(&self, shape: I) -> View<'_, T, I::IntoShape, L>
Returns a reshaped array view of the array slice.
At most one dimension can have dynamic size usize::MAX, and is then inferred
from the other dimensions and the array length.
§Examples
use mdarray::view;
let v = view![[1, 2, 3], [4, 5, 6]];
assert_eq!(v.reshape([!0, 2]), view![[1, 2], [3, 4], [5, 6]]);§Panics
Panics if the array length is changed, or if the memory layout is not compatible.
Sourcepub fn reshape_mut<I: IntoShape>(
&mut self,
shape: I,
) -> ViewMut<'_, T, I::IntoShape, L>
pub fn reshape_mut<I: IntoShape>( &mut self, shape: I, ) -> ViewMut<'_, T, I::IntoShape, L>
Returns a mutable reshaped array view of the array slice.
At most one dimension can have dynamic size usize::MAX, and is then inferred
from the other dimensions and the array length.
See the reshape method above for examples.
§Panics
Panics if the array length is changed, or if the memory layout is not compatible.
Sourcepub fn row(&self, index: usize) -> View<'_, T, (<S::Tail as Shape>::Head,), L>
pub fn row(&self, index: usize) -> View<'_, T, (<S::Tail as Shape>::Head,), L>
Returns an array view for the specified row.
§Panics
Panics if the rank is not equal to 2, or if the index is out of bounds.
Sourcepub fn row_mut(
&mut self,
index: usize,
) -> ViewMut<'_, T, (<S::Tail as Shape>::Head,), L>
pub fn row_mut( &mut self, index: usize, ) -> ViewMut<'_, T, (<S::Tail as Shape>::Head,), L>
Returns a mutable array view for the specified row.
§Panics
Panics if the rank is not equal to 2, or if the index is out of bounds.
Sourcepub fn rows(&self) -> Lanes<'_, T, S, L, Rows>
pub fn rows(&self) -> Lanes<'_, T, S, L, Rows>
Returns an expression that gives row views iterating over the other dimensions.
§Panics
Panics if the rank is not at least 1.
Sourcepub fn rows_mut(&mut self) -> LanesMut<'_, T, S, L, Rows>
pub fn rows_mut(&mut self) -> LanesMut<'_, T, S, L, Rows>
Returns a mutable expression that gives row views iterating over the other dimensions.
§Panics
Panics if the rank is not at least 1.
Sourcepub fn split_at(
&self,
mid: usize,
) -> (View<'_, T, Resize<Const<0>, S>, L>, View<'_, T, Resize<Const<0>, S>, L>)
pub fn split_at( &self, mid: usize, ) -> (View<'_, T, Resize<Const<0>, S>, L>, View<'_, T, Resize<Const<0>, S>, L>)
Divides an array slice into two at an index along the first dimension.
§Panics
Panics if the split point is larger than the number of elements in that dimension, or if the rank is not at least 1.
Sourcepub fn split_at_mut(
&mut self,
mid: usize,
) -> (ViewMut<'_, T, Resize<Const<0>, S>, L>, ViewMut<'_, T, Resize<Const<0>, S>, L>)
pub fn split_at_mut( &mut self, mid: usize, ) -> (ViewMut<'_, T, Resize<Const<0>, S>, L>, ViewMut<'_, T, Resize<Const<0>, S>, L>)
Divides a mutable array slice into two at an index along the first dimension.
§Panics
Panics if the split point is larger than the number of elements in that dimension, or if the rank is not at least 1.
Sourcepub fn split_axis_at<A: Axis>(
&self,
axis: A,
mid: usize,
) -> (View<'_, T, Resize<A, S>, Split<A, S, L>>, View<'_, T, Resize<A, S>, Split<A, S, L>>)
pub fn split_axis_at<A: Axis>( &self, axis: A, mid: usize, ) -> (View<'_, T, Resize<A, S>, Split<A, S, L>>, View<'_, T, Resize<A, S>, Split<A, S, L>>)
Divides an array slice into two at an index along the specified dimension.
If the dimension to be divided is know at compile time, the resulting array shape will maintain constant-sized dimensions. Furthermore, if it is the first dimension the resulting array views have the same layout as the input.
§Panics
Panics if the split point is larger than the number of elements in that dimension, or if the dimension is out of bounds.
Sourcepub fn split_axis_at_mut<A: Axis>(
&mut self,
axis: A,
mid: usize,
) -> (ViewMut<'_, T, Resize<A, S>, Split<A, S, L>>, ViewMut<'_, T, Resize<A, S>, Split<A, S, L>>)
pub fn split_axis_at_mut<A: Axis>( &mut self, axis: A, mid: usize, ) -> (ViewMut<'_, T, Resize<A, S>, Split<A, S, L>>, ViewMut<'_, T, Resize<A, S>, Split<A, S, L>>)
Divides a mutable array slice into two at an index along the specified dimension.
If the dimension to be divided is know at compile time, the resulting array shape will maintain constant-sized dimensions. Furthermore, if it is the first dimension the resulting array views have the same layout as the input.
§Panics
Panics if the split point is larger than the number of elements in that dimension, or if the dimension is out of bounds.
Sourcepub fn stride(&self, index: usize) -> isize
pub fn stride(&self, index: usize) -> isize
Returns the distance between elements in the specified dimension.
§Panics
Panics if the dimension is out of bounds.
Sourcepub fn swap<I, J>(&mut self, a: I, b: J)where
I: SliceIndex<T, S, L, Output = T>,
J: SliceIndex<T, S, L, Output = T>,
pub fn swap<I, J>(&mut self, a: I, b: J)where
I: SliceIndex<T, S, L, Output = T>,
J: SliceIndex<T, S, L, Output = T>,
Sourcepub fn swap_axis<A: Axis>(&mut self, axis: A, a: usize, b: usize)
pub fn swap_axis<A: Axis>(&mut self, axis: A, a: usize, b: usize)
Swaps the elements in two subarrays after indexing the specified dimension.
§Panics
Panics if a or b are out of bounds.
Sourcepub fn to_array(&self) -> Array<T, S>where
T: Clone,
S: ConstShape,
pub fn to_array(&self) -> Array<T, S>where
T: Clone,
S: ConstShape,
Copies the array slice into a new array.
Sourcepub fn to_tensor(&self) -> Tensor<T, S>where
T: Clone,
pub fn to_tensor(&self) -> Tensor<T, S>where
T: Clone,
Copies the array slice into a new array.
Sourcepub fn transpose(
&self,
) -> View<'_, T, S::Reverse, <S::Tail as Shape>::Layout<L>>
pub fn transpose( &self, ) -> View<'_, T, S::Reverse, <S::Tail as Shape>::Layout<L>>
Returns a transposed array view of the array slice, where the dimensions are reversed.
Trait Implementations§
Source§impl<T, U, S: ConstShape, I: IntoExpression> Add<I> for Array<T, S>
impl<T, U, S: ConstShape, I: IntoExpression> Add<I> for Array<T, S>
Source§impl<T, S: ConstShape, I: IntoExpression> AddAssign<I> for Array<T, S>
impl<T, S: ConstShape, I: IntoExpression> AddAssign<I> for Array<T, S>
Source§fn add_assign(&mut self, rhs: I)
fn add_assign(&mut self, rhs: I)
+= operation. Read moreSource§impl<'a, T, U, S: ConstShape> Apply<U> for &'a Array<T, S>
impl<'a, T, U, S: ConstShape> Apply<U> for &'a Array<T, S>
Source§type Output<F: FnMut(&'a T) -> U> = Map<<&'a Array<T, S> as IntoExpression>::IntoExpr, F>
type Output<F: FnMut(&'a T) -> U> = Map<<&'a Array<T, S> as IntoExpression>::IntoExpr, F>
Source§type ZippedWith<I: IntoExpression, F: FnMut((&'a T, I::Item)) -> U> = Map<Zip<<&'a Array<T, S> as IntoExpression>::IntoExpr, <I as IntoExpression>::IntoExpr>, F>
type ZippedWith<I: IntoExpression, F: FnMut((&'a T, I::Item)) -> U> = Map<Zip<<&'a Array<T, S> as IntoExpression>::IntoExpr, <I as IntoExpression>::IntoExpr>, F>
Source§fn apply<F: FnMut(&'a T) -> U>(self, f: F) -> Self::Output<F>
fn apply<F: FnMut(&'a T) -> U>(self, f: F) -> Self::Output<F>
Source§fn zip_with<I: IntoExpression, F>(self, expr: I, f: F) -> Self::ZippedWith<I, F>
fn zip_with<I: IntoExpression, F>(self, expr: I, f: F) -> Self::ZippedWith<I, F>
Source§impl<'a, T, U, S: ConstShape> Apply<U> for &'a mut Array<T, S>
impl<'a, T, U, S: ConstShape> Apply<U> for &'a mut Array<T, S>
Source§type Output<F: FnMut(&'a mut T) -> U> = Map<<&'a mut Array<T, S> as IntoExpression>::IntoExpr, F>
type Output<F: FnMut(&'a mut T) -> U> = Map<<&'a mut Array<T, S> as IntoExpression>::IntoExpr, F>
Source§type ZippedWith<I: IntoExpression, F: FnMut((&'a mut T, I::Item)) -> U> = Map<Zip<<&'a mut Array<T, S> as IntoExpression>::IntoExpr, <I as IntoExpression>::IntoExpr>, F>
type ZippedWith<I: IntoExpression, F: FnMut((&'a mut T, I::Item)) -> U> = Map<Zip<<&'a mut Array<T, S> as IntoExpression>::IntoExpr, <I as IntoExpression>::IntoExpr>, F>
Source§fn apply<F: FnMut(&'a mut T) -> U>(self, f: F) -> Self::Output<F>
fn apply<F: FnMut(&'a mut T) -> U>(self, f: F) -> Self::Output<F>
Source§fn zip_with<I: IntoExpression, F>(self, expr: I, f: F) -> Self::ZippedWith<I, F>
fn zip_with<I: IntoExpression, F>(self, expr: I, f: F) -> Self::ZippedWith<I, F>
Source§impl<T, U, S: ConstShape> Apply<U> for Array<T, S>
impl<T, U, S: ConstShape> Apply<U> for Array<T, S>
Source§impl<T, const X: usize, const Y: usize> AsMut<Array<T, (Const<X>, Const<Y>)>> for [[T; Y]; X]
impl<T, const X: usize, const Y: usize> AsMut<Array<T, (Const<X>, Const<Y>)>> for [[T; Y]; X]
Source§impl<T, const X: usize, const Y: usize, const Z: usize> AsMut<Array<T, (Const<X>, Const<Y>, Const<Z>)>> for [[[T; Z]; Y]; X]
impl<T, const X: usize, const Y: usize, const Z: usize> AsMut<Array<T, (Const<X>, Const<Y>, Const<Z>)>> for [[[T; Z]; Y]; X]
Source§impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize> AsMut<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>)>> for [[[[T; W]; Z]; Y]; X]
impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize> AsMut<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>)>> for [[[[T; W]; Z]; Y]; X]
Source§impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize> AsMut<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>)>> for [[[[[T; U]; W]; Z]; Y]; X]
impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize> AsMut<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>)>> for [[[[[T; U]; W]; Z]; Y]; X]
Source§impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize, const V: usize> AsMut<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>, Const<V>)>> for [[[[[[T; V]; U]; W]; Z]; Y]; X]
impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize, const V: usize> AsMut<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>, Const<V>)>> for [[[[[[T; V]; U]; W]; Z]; Y]; X]
Source§impl<T, const X: usize, const Y: usize> AsRef<Array<T, (Const<X>, Const<Y>)>> for [[T; Y]; X]
impl<T, const X: usize, const Y: usize> AsRef<Array<T, (Const<X>, Const<Y>)>> for [[T; Y]; X]
Source§impl<T, const X: usize, const Y: usize, const Z: usize> AsRef<Array<T, (Const<X>, Const<Y>, Const<Z>)>> for [[[T; Z]; Y]; X]
impl<T, const X: usize, const Y: usize, const Z: usize> AsRef<Array<T, (Const<X>, Const<Y>, Const<Z>)>> for [[[T; Z]; Y]; X]
Source§impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize> AsRef<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>)>> for [[[[T; W]; Z]; Y]; X]
impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize> AsRef<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>)>> for [[[[T; W]; Z]; Y]; X]
Source§impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize> AsRef<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>)>> for [[[[[T; U]; W]; Z]; Y]; X]
impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize> AsRef<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>)>> for [[[[[T; U]; W]; Z]; Y]; X]
Source§impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize, const V: usize> AsRef<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>, Const<V>)>> for [[[[[[T; V]; U]; W]; Z]; Y]; X]
impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize, const V: usize> AsRef<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>, Const<V>)>> for [[[[[[T; V]; U]; W]; Z]; Y]; X]
Source§impl<T, U, S: ConstShape, I: IntoExpression> BitAnd<I> for Array<T, S>
impl<T, U, S: ConstShape, I: IntoExpression> BitAnd<I> for Array<T, S>
Source§impl<T, S: ConstShape, I: IntoExpression> BitAndAssign<I> for Array<T, S>where
T: BitAndAssign<I::Item>,
impl<T, S: ConstShape, I: IntoExpression> BitAndAssign<I> for Array<T, S>where
T: BitAndAssign<I::Item>,
Source§fn bitand_assign(&mut self, rhs: I)
fn bitand_assign(&mut self, rhs: I)
&= operation. Read moreSource§impl<T, U, S: ConstShape, I: IntoExpression> BitOr<I> for Array<T, S>
impl<T, U, S: ConstShape, I: IntoExpression> BitOr<I> for Array<T, S>
Source§impl<T, S: ConstShape, I: IntoExpression> BitOrAssign<I> for Array<T, S>where
T: BitOrAssign<I::Item>,
impl<T, S: ConstShape, I: IntoExpression> BitOrAssign<I> for Array<T, S>where
T: BitOrAssign<I::Item>,
Source§fn bitor_assign(&mut self, rhs: I)
fn bitor_assign(&mut self, rhs: I)
|= operation. Read moreSource§impl<T, U, S: ConstShape, I: IntoExpression> BitXor<I> for Array<T, S>
impl<T, U, S: ConstShape, I: IntoExpression> BitXor<I> for Array<T, S>
Source§impl<T, S: ConstShape, I: IntoExpression> BitXorAssign<I> for Array<T, S>where
T: BitXorAssign<I::Item>,
impl<T, S: ConstShape, I: IntoExpression> BitXorAssign<I> for Array<T, S>where
T: BitXorAssign<I::Item>,
Source§fn bitxor_assign(&mut self, rhs: I)
fn bitxor_assign(&mut self, rhs: I)
^= operation. Read moreSource§impl<T, S: ConstShape> BorrowMut<Slice<T, S>> for Array<T, S>
impl<T, S: ConstShape> BorrowMut<Slice<T, S>> for Array<T, S>
Source§fn borrow_mut(&mut self) -> &mut Slice<T, S>
fn borrow_mut(&mut self) -> &mut Slice<T, S>
Source§impl<T, S: ConstShape> Buffer for Array<ManuallyDrop<T>, S>
impl<T, S: ConstShape> Buffer for Array<ManuallyDrop<T>, S>
Source§impl<T, S: ConstShape> Deref for Array<T, S>
impl<T, S: ConstShape> Deref for Array<T, S>
Source§impl<T, S: ConstShape> DerefMut for Array<T, S>
impl<T, S: ConstShape> DerefMut for Array<T, S>
Source§impl<T, U, S: ConstShape, I: IntoExpression> Div<I> for Array<T, S>
impl<T, U, S: ConstShape, I: IntoExpression> Div<I> for Array<T, S>
Source§impl<T, S: ConstShape, I: IntoExpression> DivAssign<I> for Array<T, S>
impl<T, S: ConstShape, I: IntoExpression> DivAssign<I> for Array<T, S>
Source§fn div_assign(&mut self, rhs: I)
fn div_assign(&mut self, rhs: I)
/= operation. Read moreSource§impl<T: Clone, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize, const V: usize> From<&[[[[[[T; V]; U]; W]; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>, Const<V>)>
impl<T: Clone, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize, const V: usize> From<&[[[[[[T; V]; U]; W]; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>, Const<V>)>
Source§impl<T: Clone, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize> From<&[[[[[T; U]; W]; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>)>
impl<T: Clone, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize> From<&[[[[[T; U]; W]; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>)>
Source§impl<T: Clone, const X: usize, const Y: usize, const Z: usize, const W: usize> From<&[[[[T; W]; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>)>
impl<T: Clone, const X: usize, const Y: usize, const Z: usize, const W: usize> From<&[[[[T; W]; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>)>
Source§impl<T: Clone, const X: usize, const Y: usize, const Z: usize> From<&[[[T; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>)>
impl<T: Clone, const X: usize, const Y: usize, const Z: usize> From<&[[[T; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>)>
Source§impl<T: Clone, const X: usize, const Y: usize> From<&[[T; Y]; X]> for Array<T, (Const<X>, Const<Y>)>
impl<T: Clone, const X: usize, const Y: usize> From<&[[T; Y]; X]> for Array<T, (Const<X>, Const<Y>)>
Source§impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize, const V: usize> From<[[[[[[T; V]; U]; W]; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>, Const<V>)>
impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize, const V: usize> From<[[[[[[T; V]; U]; W]; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>, Const<V>)>
Source§impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize> From<[[[[[T; U]; W]; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>)>
impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize> From<[[[[[T; U]; W]; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>)>
Source§impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize> From<[[[[T; W]; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>)>
impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize> From<[[[[T; W]; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>)>
Source§impl<T, const X: usize, const Y: usize, const Z: usize> From<[[[T; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>)>
impl<T, const X: usize, const Y: usize, const Z: usize> From<[[[T; Z]; Y]; X]> for Array<T, (Const<X>, Const<Y>, Const<Z>)>
Source§impl<T, const X: usize, const Y: usize, const Z: usize> From<Array<T, (Const<X>, Const<Y>, Const<Z>)>> for [[[T; Z]; Y]; X]
impl<T, const X: usize, const Y: usize, const Z: usize> From<Array<T, (Const<X>, Const<Y>, Const<Z>)>> for [[[T; Z]; Y]; X]
Source§impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize> From<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>)>> for [[[[T; W]; Z]; Y]; X]
impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize> From<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>)>> for [[[[T; W]; Z]; Y]; X]
Source§impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize> From<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>)>> for [[[[[T; U]; W]; Z]; Y]; X]
impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize> From<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>)>> for [[[[[T; U]; W]; Z]; Y]; X]
Source§impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize, const V: usize> From<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>, Const<V>)>> for [[[[[[T; V]; U]; W]; Z]; Y]; X]
impl<T, const X: usize, const Y: usize, const Z: usize, const W: usize, const U: usize, const V: usize> From<Array<T, (Const<X>, Const<Y>, Const<Z>, Const<W>, Const<U>, Const<V>)>> for [[[[[[T; V]; U]; W]; Z]; Y]; X]
Source§impl<'a, T: 'a + Clone, S: ConstShape, L: Layout, I> From<I> for Array<T, S>where
I: IntoExpression<IntoExpr = View<'a, T, S, L>>,
impl<'a, T: 'a + Clone, S: ConstShape, L: Layout, I> From<I> for Array<T, S>where
I: IntoExpression<IntoExpr = View<'a, T, S, L>>,
Source§impl<T, S: ConstShape> FromExpression<T, S> for Array<T, S>
impl<T, S: ConstShape> FromExpression<T, S> for Array<T, S>
Source§fn from_expr<I: IntoExpression<Item = T, Shape = S>>(expr: I) -> Self
fn from_expr<I: IntoExpression<Item = T, Shape = S>>(expr: I) -> Self
Source§impl<T, S: ConstShape, I: SliceIndex<T, S, Dense>> Index<I> for Array<T, S>
impl<T, S: ConstShape, I: SliceIndex<T, S, Dense>> Index<I> for Array<T, S>
Source§impl<T, S: ConstShape, I: SliceIndex<T, S, Dense>> IndexMut<I> for Array<T, S>
impl<T, S: ConstShape, I: SliceIndex<T, S, Dense>> IndexMut<I> for Array<T, S>
Source§impl<'a, T, S: ConstShape> IntoExpression for &'a Array<T, S>
impl<'a, T, S: ConstShape> IntoExpression for &'a Array<T, S>
Source§impl<'a, T, S: ConstShape> IntoExpression for &'a mut Array<T, S>
impl<'a, T, S: ConstShape> IntoExpression for &'a mut Array<T, S>
Source§impl<T, S: ConstShape> IntoExpression for Array<T, S>
impl<T, S: ConstShape> IntoExpression for Array<T, S>
Source§impl<'a, T, S: ConstShape> IntoIterator for &'a Array<T, S>
impl<'a, T, S: ConstShape> IntoIterator for &'a Array<T, S>
Source§impl<'a, T, S: ConstShape> IntoIterator for &'a mut Array<T, S>
impl<'a, T, S: ConstShape> IntoIterator for &'a mut Array<T, S>
Source§impl<T, S: ConstShape> IntoIterator for Array<T, S>
impl<T, S: ConstShape> IntoIterator for Array<T, S>
Source§impl<T, U, S: ConstShape, I: IntoExpression> Mul<I> for Array<T, S>
impl<T, U, S: ConstShape, I: IntoExpression> Mul<I> for Array<T, S>
Source§impl<T, S: ConstShape, I: IntoExpression> MulAssign<I> for Array<T, S>
impl<T, S: ConstShape, I: IntoExpression> MulAssign<I> for Array<T, S>
Source§fn mul_assign(&mut self, rhs: I)
fn mul_assign(&mut self, rhs: I)
*= operation. Read moreSource§impl<'a, T, U, S: ConstShape> Neg for &'a Array<T, S>
impl<'a, T, U, S: ConstShape> Neg for &'a Array<T, S>
Source§impl<'a, T, U, S: ConstShape> Not for &'a Array<T, S>
impl<'a, T, U, S: ConstShape> Not for &'a Array<T, S>
Source§impl<T, U, S: ConstShape, I: IntoExpression> Rem<I> for Array<T, S>
impl<T, U, S: ConstShape, I: IntoExpression> Rem<I> for Array<T, S>
Source§impl<T, S: ConstShape, I: IntoExpression> RemAssign<I> for Array<T, S>
impl<T, S: ConstShape, I: IntoExpression> RemAssign<I> for Array<T, S>
Source§fn rem_assign(&mut self, rhs: I)
fn rem_assign(&mut self, rhs: I)
%= operation. Read moreSource§impl<T, U, S: ConstShape, I: IntoExpression> Shl<I> for Array<T, S>
impl<T, U, S: ConstShape, I: IntoExpression> Shl<I> for Array<T, S>
Source§impl<T, S: ConstShape, I: IntoExpression> ShlAssign<I> for Array<T, S>
impl<T, S: ConstShape, I: IntoExpression> ShlAssign<I> for Array<T, S>
Source§fn shl_assign(&mut self, rhs: I)
fn shl_assign(&mut self, rhs: I)
<<= operation. Read moreSource§impl<T, U, S: ConstShape, I: IntoExpression> Shr<I> for Array<T, S>
impl<T, U, S: ConstShape, I: IntoExpression> Shr<I> for Array<T, S>
Source§impl<T, S: ConstShape, I: IntoExpression> ShrAssign<I> for Array<T, S>
impl<T, S: ConstShape, I: IntoExpression> ShrAssign<I> for Array<T, S>
Source§fn shr_assign(&mut self, rhs: I)
fn shr_assign(&mut self, rhs: I)
>>= operation. Read moreSource§impl<T, U, S: ConstShape, I: IntoExpression> Sub<I> for Array<T, S>
impl<T, U, S: ConstShape, I: IntoExpression> Sub<I> for Array<T, S>
Source§impl<T, S: ConstShape, I: IntoExpression> SubAssign<I> for Array<T, S>
impl<T, S: ConstShape, I: IntoExpression> SubAssign<I> for Array<T, S>
Source§fn sub_assign(&mut self, rhs: I)
fn sub_assign(&mut self, rhs: I)
-= operation. Read more