Trait nyx_space::linalg::allocator::Allocator [−][src]
pub trait Allocator<T, R, C = Const<1_usize>>: Any where
T: Scalar,
R: Dim,
C: Dim, {
type Buffer: ContiguousStorageMut<T, R, C> + Clone;
unsafe fn allocate_uninitialized(
nrows: R,
ncols: C
) -> MaybeUninit<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: ContiguousStorageMut<T, R, C> + Clone
type Buffer: ContiguousStorageMut<T, R, C> + Clone
The type of buffer this allocator can instanciate.
Required methods
unsafe fn allocate_uninitialized(
nrows: R,
ncols: C
) -> MaybeUninit<Self::Buffer>
unsafe fn allocate_uninitialized(
nrows: R,
ncols: C
) -> MaybeUninit<Self::Buffer>
Allocates a buffer with the given number of rows and columns without initializing its content.
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.