pub unsafe trait StorageMut<T: Scalar, R: Dim, C: Dim = U1>: Storage<T, R, C> {
    // Required methods
    fn ptr_mut(&mut self) -> *mut T;
    fn as_mut_slice(&mut self) -> &mut [T];

    // Provided methods
    unsafe fn get_address_unchecked_linear_mut(&mut self, i: usize) -> *mut T { ... }
    unsafe fn get_address_unchecked_mut(
        &mut self,
        irow: usize,
        icol: usize
    ) -> *mut T { ... }
    unsafe fn get_unchecked_linear_mut(&mut self, i: usize) -> &mut T { ... }
    unsafe fn get_unchecked_mut(&mut self, irow: usize, icol: usize) -> &mut T { ... }
    unsafe fn swap_unchecked_linear(&mut self, i1: usize, i2: usize) { ... }
    unsafe fn swap_unchecked(
        &mut self,
        row_col1: (usize, usize),
        row_col2: (usize, usize)
    ) { ... }
}
Expand description

Trait implemented by matrix data storage that can provide a mutable access to its elements.

Note that a mutable access does not mean that the matrix owns its data. For example, a mutable matrix slice can provide mutable access to its elements even if it does not own its data (it contains only an internal reference to them).

Required Methods§

source

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

The matrix mutable data pointer.

source

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

Retrieves the mutable data buffer as a contiguous slice.

Matrix components may not be contiguous, depending on its strides.

Provided Methods§

source

unsafe 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.

source

unsafe 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.

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.

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.

source

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

Swaps two elements using their linear index without bound-checking.

source

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

Swaps two elements without bound-checking.

Implementors§

source§

impl<'a, T: Scalar, R: Dim, C: Dim, RStride: Dim, CStride: Dim> StorageMut<T, R, C> for SliceStorageMut<'a, T, R, C, RStride, CStride>

source§

impl<T, const R: usize, const C: usize> StorageMut<T, Const<R>, Const<C>> for ArrayStorage<T, R, C>where T: Scalar, DefaultAllocator: Allocator<T, Const<R>, Const<C>, Buffer = Self>,

source§

impl<T: Scalar, C: Dim> StorageMut<T, Dynamic, C> for VecStorage<T, Dynamic, C>where DefaultAllocator: Allocator<T, Dynamic, C, Buffer = Self>,

source§

impl<T: Scalar, R: DimName> StorageMut<T, R, Dynamic> for VecStorage<T, R, Dynamic>where DefaultAllocator: Allocator<T, R, Dynamic, Buffer = Self>,