#index #pool #indices #datastructures

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

#52 in Memory management

Download history 12/week @ 2020-03-10 60/week @ 2020-03-17 36/week @ 2020-03-24 41/week @ 2020-04-07 50/week @ 2020-04-14 3/week @ 2020-04-21 3/week @ 2020-04-28 1/week @ 2020-05-05 1/week @ 2020-05-12 3/week @ 2020-05-19 12/week @ 2020-05-26 38/week @ 2020-06-02 2/week @ 2020-06-09 13/week @ 2020-06-16 1/week @ 2020-06-23

98 downloads per month
Used in conniecs

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