id_cache

Crates.ioid_cache
lib.rsid_cache
version0.1.0
sourcesrc
created_at2022-05-25 12:37:29.993616
updated_at2022-05-25 12:37:29.993616
descriptionA cache data structure which generates sequentially-assigned ids for unique values
homepage
repositoryhttps://github.com/exists-forall/id_cache
max_upload_size
id593467
size12,884
William Brandon (exists-forall)

documentation

README

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.

Example

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);

Optional Features

This crate has optional Serde support, which can be enabled with the serde Cargo feature.

Commit count: 1

cargo fmt