Trait heapless::pool::singleton::Pool[][src]

pub trait Pool {
    type Data: 'static;
    fn alloc() -> Option<Box<Self, Uninit>>
    where
        Self: Sized
, { ... }
fn grow(memory: &'static mut [u8]) -> usize { ... }
fn grow_exact<A>(memory: &'static mut MaybeUninit<A>) -> usize
    where
        A: AsMutSlice<Element = Node<Self::Data>>
, { ... } }

A global singleton memory pool

Associated Types

type Data: 'static[src]

The type of data that can be allocated on this pool

Loading content...

Provided methods

fn alloc() -> Option<Box<Self, Uninit>> where
    Self: Sized
[src]

Claims a memory block from the pool

Returns None when the pool is observed as exhausted

NOTE: This method does not have bounded execution time; i.e. it contains a CAS loop

fn grow(memory: &'static mut [u8]) -> usize[src]

Increases the capacity of the pool

This method might not fully utilize the given memory block due to alignment requirements

This method returns the number of new blocks that can be allocated.

fn grow_exact<A>(memory: &'static mut MaybeUninit<A>) -> usize where
    A: AsMutSlice<Element = Node<Self::Data>>, 
[src]

Increases the capacity of the pool

Unlike Pool.grow this method fully utilizes the given memory block

Loading content...

Implementors

Loading content...