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

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