Trait bevy_rapier2d::prelude::nalgebra::base::allocator::Allocator [−][src]
pub trait Allocator<T, R, C = Const<1_usize>>: Any where
C: Dim,
R: Dim, { type Buffer: StorageMut<T, R, C> + IsContiguous + Clone + Debug; type BufferUninit: RawStorageMut<MaybeUninit<T>, R, C> + IsContiguous; fn allocate_uninit(nrows: R, ncols: C) -> Self::BufferUninit; unsafe fn assume_init(uninit: Self::BufferUninit) -> Self::Buffer; fn allocate_from_iterator<I>(nrows: R, ncols: C, iter: I) -> Self::Buffer
where
I: IntoIterator<Item = T>; }
Expand description
A matrix allocator of a memory buffer that may contain R::to_usize() * C::to_usize()
elements of type T
.
An allocator is said to be:
− static: if R
and C
both implement DimName
.
− dynamic: if either one (or both) of R
or C
is equal to Dynamic
.
Every allocator must be both static and dynamic. Though not all implementations may share the
same Buffer
type.
Associated Types
type Buffer: StorageMut<T, R, C> + IsContiguous + Clone + Debug
type Buffer: StorageMut<T, R, C> + IsContiguous + Clone + Debug
The type of buffer this allocator can instanciate.
type BufferUninit: RawStorageMut<MaybeUninit<T>, R, C> + IsContiguous
type BufferUninit: RawStorageMut<MaybeUninit<T>, R, C> + IsContiguous
The type of buffer with uninitialized components this allocator can instanciate.
Required methods
fn allocate_uninit(nrows: R, ncols: C) -> Self::BufferUninit
fn allocate_uninit(nrows: R, ncols: C) -> Self::BufferUninit
Allocates a buffer with the given number of rows and columns without initializing its content.
unsafe fn assume_init(uninit: Self::BufferUninit) -> Self::Buffer
unsafe fn assume_init(uninit: Self::BufferUninit) -> Self::Buffer
Assumes a data buffer to be initialized.
Safety
The user must make sure that every single entry of the buffer has been initialized, or Undefined Behavior will immediately occur.
fn allocate_from_iterator<I>(nrows: R, ncols: C, iter: I) -> Self::Buffer where
I: IntoIterator<Item = T>,
fn allocate_from_iterator<I>(nrows: R, ncols: C, iter: I) -> Self::Buffer where
I: IntoIterator<Item = T>,
Allocates a buffer initialized with the content of the given iterator.