Piece
Piece is a collection of composable allocators for rust.
Allocators
Currently this crate contains two allocators, piece::LinearAllocator and piece::ChainAllocator.
Linear allocator
piece::LinearAllocator is an allocator that keeps a fixed-sized buffer internally
and use it to make allocations. Once the buffer is full, all next allocations fails.
This allocator is useful when you want a "scratch space" for multiple tiny allocations that share the same lifetime.
Usage:
Chain allocator
A piece::ChainAllocator create a new allocator of type A when the existing allocators of this
It can be useful when used with a piece::LinearAllocator for example. When
all of its memory is used, the ChainAllocator will create a new one. This is useful when
you want to use fixed-sized allocators but you're worried that your program will run out of
memory.
Usage:
Nightly channel
You should enable the Rust feature_api on nightly builds adding #![feature(allocator_api)] to the root of your crate.
Stable channel
To use this library on stable channels, you should enable the feature stable. It will enable piece to use allocator_api2,
that contains a mirror of the unstable nightly Allocator trait. You should be able to use any collections that are generic over allocator_api2::Allocator.