Trait rin::math::allocator::Allocator [−][src]
pub trait Allocator<N, R, C = U1>: Any where
C: Dim,
N: Scalar,
R: Dim, { type Buffer: ContiguousStorageMut<N, R, C> + Clone; unsafe fn allocate_uninitialized(nrows: R, ncols: C) -> Self::Buffer; fn allocate_from_iterator<I>(nrows: R, ncols: C, iter: I) -> Self::Buffer
where
I: IntoIterator<Item = N>; }
A matrix allocator of a memory buffer that may contain R::to_usize() * C::to_usize()
elements of type N
.
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<N, R, C> + Clone
The type of buffer this allocator can instanciate.
Required Methods
unsafe fn allocate_uninitialized(nrows: R, ncols: C) -> 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 = N>,
I: IntoIterator<Item = N>,
Allocates a buffer initialized with the content of the given iterator.
Implementors
impl<N, R, C> Allocator<N, R, C> for DefaultAllocator where
C: DimName,
N: Scalar,
R: DimName,
<R as DimName>::Value: Mul<<C as DimName>::Value>,
<<R as DimName>::Value as Mul<<C as DimName>::Value>>::Output: ArrayLength<N>, type Buffer = MatrixArray<N, R, C>;impl<N, C> Allocator<N, Dynamic, C> for DefaultAllocator where
C: Dim,
N: Scalar, type Buffer = MatrixVec<N, Dynamic, C>;impl<N, R> Allocator<N, R, Dynamic> for DefaultAllocator where
N: Scalar,
R: DimName, type Buffer = MatrixVec<N, R, Dynamic>;