generic_array_storage

Struct GenericArrayStorage

Source
#[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, R: Conv, C: Conv> AsMut<[T]> for GenericArrayStorage<T, R, C>

Source§

fn as_mut(&mut self) -> &mut [T]

Converts this type into a mutable reference of the (usually inferred) input type.
Source§

impl<T, R: Conv, C: Conv> AsRef<[T]> for GenericArrayStorage<T, R, C>

Source§

fn as_ref(&self) -> &[T]

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<T, R: Conv, C: Conv> Clone for GenericArrayStorage<T, R, C>
where T: Clone, GenericArray<GenericArray<T, R::TNum>, C::TNum>: Clone,

Source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug, R: Conv, C: Conv> Debug for GenericArrayStorage<T, R, C>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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>,

Source§

fn from(value: [[T; AR]; AC]) -> Self

Converts to this type from the input type.
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>,

Source§

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>

Source§

type RStride = Const<1>

The static stride of this storage’s rows.
Source§

type CStride = <R as Conv>::Nalg

The static stride of this storage’s columns.
Source§

fn ptr(&self) -> *const T

The matrix data pointer.
Source§

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)

The spacing between consecutive row elements and consecutive column elements. Read more
Source§

fn is_contiguous(&self) -> bool

Indicates whether this data buffer stores its elements contiguously. Read more
Source§

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

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

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

Gets the address of the i-th matrix component without performing bound-checking. Read more
Source§

unsafe fn get_unchecked_linear(&self, i: usize) -> &T

Retrieves a reference to the i-th element without bound-checking. Read more
Source§

unsafe fn get_unchecked(&self, irow: usize, icol: usize) -> &T

Retrieves a reference to the i-th element without 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>

Source§

fn ptr_mut(&mut self) -> *mut T

The matrix mutable data pointer.
Source§

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

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

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

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

Retrieves a mutable reference to the element at (irow, icol) without bound-checking. Read more
Source§

unsafe fn swap_unchecked_linear(&mut self, i1: usize, i2: usize)

Swaps two elements using their linear index without bound-checking. Read more
Source§

unsafe fn swap_unchecked( &mut self, row_col1: (usize, usize), row_col2: (usize, usize), )

Swaps two elements without bound-checking. Read more
Source§

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>

Builds a matrix data storage that does not contain any reference.
Source§

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)

Drops the storage without calling the destructors on the contained elements.
Source§

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,

Source§

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>
where <<C as Conv>::TNum as ArrayLength>::ArrayType<GenericArray<T, <R as Conv>::TNum>>: Freeze,

§

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>
where <<C as Conv>::TNum as ArrayLength>::ArrayType<GenericArray<T, <R as Conv>::TNum>>: Unpin,

§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<S, T, R, C> StorageMut<T, R, C> for S
where T: Scalar, R: Dim, C: Dim, S: Storage<T, R, C> + RawStorageMut<T, R, C>,