#[repr(transparent)]pub struct GenericArrayStorage<T, R: Conv, C: Conv>(pub GenericArray<GenericArray<T, R::TNum>, C::TNum>);
Expand description
A stack-allocated storage, of typenum
-backed col-major two dimensional array
This struct is transparent and completely public, since it has nothing to hide! Note that GenericArray
is transparent itself, so this struct effectively has the same layout as a two-dimensional array of the corresponding size.
Tuple Fields§
§0: GenericArray<GenericArray<T, R::TNum>, C::TNum>
Trait Implementations§
Source§impl<T, const AR: usize, const AC: usize, R, C> From<[[T; AR]; AC]> for GenericArrayStorage<T, R, C>where
Const<N>: IntoArrayLength,
R: Conv<TNum = <Const<N> as IntoArrayLength>::ArrayLength>,
C: Conv<TNum = <Const<N> as IntoArrayLength>::ArrayLength>,
impl<T, const AR: usize, const AC: usize, R, C> From<[[T; AR]; AC]> for GenericArrayStorage<T, R, C>where
Const<N>: IntoArrayLength,
R: Conv<TNum = <Const<N> as IntoArrayLength>::ArrayLength>,
C: Conv<TNum = <Const<N> as IntoArrayLength>::ArrayLength>,
Source§impl<T, const AR: usize, const AC: usize, R, C> From<GenericArrayStorage<T, R, C>> for [[T; AR]; AC]where
Const<N>: IntoArrayLength,
R: Conv<TNum = <Const<N> as IntoArrayLength>::ArrayLength>,
C: Conv<TNum = <Const<N> as IntoArrayLength>::ArrayLength>,
impl<T, const AR: usize, const AC: usize, R, C> From<GenericArrayStorage<T, R, C>> for [[T; AR]; AC]where
Const<N>: IntoArrayLength,
R: Conv<TNum = <Const<N> as IntoArrayLength>::ArrayLength>,
C: Conv<TNum = <Const<N> as IntoArrayLength>::ArrayLength>,
Source§fn from(GenericArrayStorage: GenericArrayStorage<T, R, C>) -> Self
fn from(GenericArrayStorage: GenericArrayStorage<T, R, C>) -> Self
Converts to this type from the input type.
Source§impl<T, R: Conv, C: Conv> RawStorage<T, <R as Conv>::Nalg, <C as Conv>::Nalg> for GenericArrayStorage<T, R, C>
impl<T, R: Conv, C: Conv> RawStorage<T, <R as Conv>::Nalg, <C as Conv>::Nalg> for GenericArrayStorage<T, R, C>
Source§fn shape(&self) -> (R::Nalg, C::Nalg)
fn shape(&self) -> (R::Nalg, C::Nalg)
The dimension of the matrix at run-time. Arr length of zero indicates the additive identity
element of any dimension. Must be equal to
Self::dimension()
if it is not None
.Source§fn strides(&self) -> (Self::RStride, Self::CStride)
fn strides(&self) -> (Self::RStride, Self::CStride)
The spacing between consecutive row elements and consecutive column elements. Read more
Source§fn is_contiguous(&self) -> bool
fn is_contiguous(&self) -> bool
Indicates whether this data buffer stores its elements contiguously. Read more
Source§unsafe fn as_slice_unchecked(&self) -> &[T]
unsafe fn as_slice_unchecked(&self) -> &[T]
Retrieves the data buffer as a contiguous slice. Read more
Source§fn linear_index(&self, irow: usize, icol: usize) -> usize
fn linear_index(&self, irow: usize, icol: usize) -> usize
Compute the index corresponding to the irow-th row and icol-th column of this matrix. The
index must be such that the following holds: Read more
Source§fn get_address_unchecked_linear(&self, i: usize) -> *const T
fn get_address_unchecked_linear(&self, i: usize) -> *const T
Gets the address of the i-th matrix component without performing bound-checking. Read more
Source§fn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
fn get_address_unchecked(&self, irow: usize, icol: usize) -> *const T
Gets the address of the i-th matrix component without performing bound-checking. Read more
Source§impl<T, R: Conv, C: Conv> RawStorageMut<T, <R as Conv>::Nalg, <C as Conv>::Nalg> for GenericArrayStorage<T, R, C>
impl<T, R: Conv, C: Conv> RawStorageMut<T, <R as Conv>::Nalg, <C as Conv>::Nalg> for GenericArrayStorage<T, R, C>
Source§unsafe fn as_mut_slice_unchecked(&mut self) -> &mut [T]
unsafe fn as_mut_slice_unchecked(&mut self) -> &mut [T]
Retrieves the mutable data buffer as a contiguous slice. Read more
Source§fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T
Gets the mutable address of the i-th matrix component without performing bound-checking. Read more
Source§fn get_address_unchecked_mut(&mut self, irow: usize, icol: usize) -> *mut T
fn get_address_unchecked_mut(&mut self, irow: usize, icol: usize) -> *mut T
Gets the mutable address of the i-th matrix component without performing bound-checking. Read more
Source§unsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut T
unsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut T
Retrieves a mutable reference to the i-th element without bound-checking. Read more
Source§unsafe fn get_unchecked_mut(&mut self, irow: usize, icol: usize) -> &mut T
unsafe fn get_unchecked_mut(&mut self, irow: usize, icol: usize) -> &mut T
Retrieves a mutable reference to the element at
(irow, icol)
without bound-checking. Read moreSource§impl<T: Scalar, R: Conv, C: Conv> Storage<T, <R as Conv>::Nalg, <C as Conv>::Nalg> for GenericArrayStorage<T, R, C>
impl<T: Scalar, R: Conv, C: Conv> Storage<T, <R as Conv>::Nalg, <C as Conv>::Nalg> for GenericArrayStorage<T, R, C>
Source§fn into_owned(self) -> Owned<T, R::Nalg, C::Nalg>
fn into_owned(self) -> Owned<T, R::Nalg, C::Nalg>
Builds a matrix data storage that does not contain any reference.
Source§fn clone_owned(&self) -> Owned<T, R::Nalg, C::Nalg>
fn clone_owned(&self) -> Owned<T, R::Nalg, C::Nalg>
Clones this data storage to one that does not contain any reference.
Source§fn forget_elements(self)
fn forget_elements(self)
Drops the storage without calling the destructors on the contained elements.
impl<T, R: Conv, C: Conv> Copy for GenericArrayStorage<T, R, C>where
T: Copy,
<R::TNum as ArrayLength>::ArrayType<T>: Copy,
<C::TNum as ArrayLength>::ArrayType<GenericArray<T, R::TNum>>: Copy,
impl<R: Conv, C: Conv, T: Scalar> IsContiguous for GenericArrayStorage<T, R, C>
Auto Trait Implementations§
impl<T, R, C> Freeze for GenericArrayStorage<T, R, C>
impl<T, R, C> RefUnwindSafe for GenericArrayStorage<T, R, C>where
<<C as Conv>::TNum as ArrayLength>::ArrayType<GenericArray<T, <R as Conv>::TNum>>: RefUnwindSafe,
impl<T, R, C> Send for GenericArrayStorage<T, R, C>where
T: Send,
impl<T, R, C> Sync for GenericArrayStorage<T, R, C>where
T: Sync,
impl<T, R, C> Unpin for GenericArrayStorage<T, R, C>
impl<T, R, C> UnwindSafe for GenericArrayStorage<T, R, C>where
<<C as Conv>::TNum as ArrayLength>::ArrayType<GenericArray<T, <R as Conv>::TNum>>: 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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.