#index #pool #datastructures #indices

index-pool

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

11 stable releases

1.0.11 May 10, 2018
1.0.10 May 9, 2018
1.0.7 Sep 11, 2017
1.0.2 Aug 25, 2017

#28 in Memory management

Download history 12/week @ 2019-08-10 133/week @ 2019-08-24 40/week @ 2019-08-31 16/week @ 2019-09-07 58/week @ 2019-09-14 55/week @ 2019-09-21 14/week @ 2019-09-28 15/week @ 2019-10-05 2/week @ 2019-10-12 27/week @ 2019-10-19 95/week @ 2019-10-26

76 downloads per month
Used in 1 crate

MIT license

11KB
234 lines

index-pool index-pool on crates.io Build Status Build status

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

[dependencies]
index-pool = "1.0"

Example

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"]);
}

Dependencies

~10KB