19 unstable releases (3 breaking)
Uses old Rust 2015
| 0.3.3 | Jun 12, 2015 |
|---|---|
| 0.3.0 | Apr 25, 2015 |
| 0.0.12 | Mar 30, 2015 |
| 0.0.5 | Dec 23, 2014 |
| 0.0.4 | Nov 28, 2014 |
#6 in #keyed
46,744 downloads per month
Used in 252 crates
(51 directly)
17KB
326 lines
A type-based key value store where one value type is allowed for each key.
TypeMap
A typesafe store keyed by types and containing different types of values.
It provides functionality similar to AnyMap, but is more flexible because it allows for key-value pairs, rather than enforcing that keys and values are the same type.
Key-value associations are defined through the Key trait, which uses an
associated type parameter and trait coherence rules to enforce the invariants
of TypeMap.
Example
#[deriving(Show, PartialEq)]
struct KeyType;
#[deriving(Show, PartialEq)]
struct Value(i32);
impl Key for KeyType { type Value = Value; }
#[test] fn test_pairing() {
let mut map = TypeMap::new();
map.insert::<KeyType>(Value(12));
assert_eq!(*map.find::<KeyType>().unwrap(), Value(12);
}
Dependencies
~14KB