Crate slice_pool

source ·
Expand description

This crate provides functionality for using a sliceable type as the underlying memory for a pool.

The allocated memory can be a mutable slice of any type.

use slice_pool::sync::SlicePool;

let values = vec![10, 20, 30, 40, 50, 60, 70, 80, 90, 100];
let mut memory = SlicePool::new(values);
assert_eq!(memory.len(), 10);

// Not enough memory available (only 10 elements)
assert!(memory.alloc(11).is_none());

let mut first = memory.alloc(2).unwrap();
assert_eq!(*first, [10, 20]);
first[1] = 15;
assert_eq!(*first, [10, 15]);

let mem2 = memory.alloc(5).unwrap();
assert_eq!(*mem2, [30, 40, 50, 60, 70]);

Modules

Synchronized memory pools.
Unsynchronized memory pools.