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§
- boxed
- This module contains the
Boxsmart pointer, capable of managing memory in aIndexAllocator. - rc
- This module contains the
Rcsmart point capable of shared ownership of memory in aIndexAllocator
Structs§
- Index
Allocator - The
IndexAllocatorstruct is the main component of this crate, it creates a memory pool of sizeMEMORY_SIZEwith an index of sizeINDEX_SIZE.
Enums§
- Index
Error - The Error type wich the Allocator can raise.