polystore

Crates.iopolystore
lib.rspolystore
version0.1.0
sourcesrc
created_at2021-07-08 10:13:58.718681
updated_at2021-07-08 10:13:58.718681
descriptionPolymorphic data store
homepage
repositoryhttps://github.com/kas-gui/polystore
max_upload_size
id420261
size24,663
Diggory Hardy (dhardy)

documentation

https://docs.rs/polystore

README

Polystore

Test Status Crate API

A polymorphic data store:

// It's a HashMap<K = i32> storing polymorphic values:
let mut store = HashMap::new();

// k1 is the key 1 tagged with the element type `&'static str`
let k1 = store.insert(1, "A static str");
if let Some(v) = store.get_mut(&k1) {
    *v = "another str";
}
assert_eq!(store.get_tagged(&k1), Some(&"another str"));

// untagged keys work too (relying on type inference, here `String`):
store.insert(2, "A String".to_string());
assert_eq!(store.get(&2), Some(&"A String".to_string()));

assert!(store.contains_key(&k1));
assert!(store.contains_key(&1));
assert!(!store.contains_key(&3));

Crate Features

Optional crate features:

  • fxhash: add FxHashMap using the rustc-hash crate

License

Polystore is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT, and COPYRIGHT for details.

Commit count: 16

cargo fmt