Crate index_pool [] [src]

A pool which manages allocation of unique indices. Acts like a psuedo-memory allocator.

extern crate index_pool;
use index_pool::IndexPool;

fn main() {
    let mut pool = IndexPool::new();

    let a = pool.new_id();
    let b = pool.new_id();
    let c = pool.new_id();

    let mut data = vec![""; pool.maximum()];
    data[a] = "apple";
    data[b] = "banana";
    data[c] = "coconut";

    // Nevermind, no bananas
    pool.return_id(b).unwrap();

    let p = pool.new_id();
    data[p] = "pineapple";

    assert_eq!(data, vec!["apple", "pineapple", "coconut"]);
}

Modules

iter

Structs

AlreadyInUse
AlreadyReturned
IndexPool

A pool which manages allocation of unique indices. Acts like a psuedo-memory allocator.