Crates.io | id_cache |
lib.rs | id_cache |
version | 0.1.0 |
source | src |
created_at | 2022-05-25 12:37:29.993616 |
updated_at | 2022-05-25 12:37:29.993616 |
description | A cache data structure which generates sequentially-assigned ids for unique values |
homepage | |
repository | https://github.com/exists-forall/id_cache |
max_upload_size | |
id | 593467 |
size | 12,884 |
id_cache
Download: crates.io/crates/id_cache
Docs: docs.rs/id_cache
This is a small crate built on id_collections
which provides a simple "cache" data structure for generating sequentially-assigned ids for unique values of some hashable type.
use id_collections::id_type;
use id_cache::IdCache;
#[id_type]
struct WordId(u32);
let mut word_cache: IdCache<WordId, &str> = IdCache::new();
let foo_id = word_cache.make_id("foo");
let bar_id = word_cache.make_id("bar");
assert_eq!(word_cache[foo_id], "foo");
assert_eq!(word_cache[bar_id], "bar");
// ids for repeated values are reused:
assert_eq!(word_cache.make_id("foo"), foo_id);
This crate has optional Serde support, which can be enabled with the serde
Cargo feature.