Crate index_alloc
source ·Expand description
§Index Alloc
A simple, toy static Allocator which use a fixed length array to store allocated data.
This crate expose a struct IndexAllocator
which implement GlobalAlloc
so it can be uses as the global allocator in no_std
environment.
Disadvantages :
- Extremely unsafe
- Very slow
- Memory inefficient
Even though it seems unusable, it has plenty of advantages :
- Just kidding, don’t use that
To store allocated memory, IndexAllocator
uses a MemoryIndex
which stores a list of regions containing the state of the region (size, from which address, used status). For instance :
use index_alloc::IndexAllocator;
#[global_allocator]
static ALLOCATOR: IndexAllocator<2048, 16> = IndexAllocator::empty();
fn main() {
let test_str = String::from("Hello World");
println!("{test_str}");
}
See more example in the Repository's Examples
.
Modules§
- This module contains the
Box
smart pointer, capable of managing memory in aIndexAllocator
. - This module contains the
Rc
smart point capable of shared ownership of memory in aIndexAllocator
Structs§
- The
IndexAllocator
struct is the main component of this crate, it creates a memory pool of sizeMEMORY_SIZE
with an index of sizeINDEX_SIZE
.
Enums§
- The Error type wich the Allocator can raise.