Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/reem/rust-typemap

A typesafe store keyed by types and containing different types of values.
https://github.com/reem/rust-typemap

Last synced: 9 days ago
JSON representation

A typesafe store keyed by types and containing different types of values.

Lists

README

        

# `TypeMap`

> A typesafe store keyed by types and containing different types of values.

## [Documentation](https://crates.fyi/crates/typemap/0.3.3)

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

```rust
extern crate typemap;
use typemap::{TypeMap, Key};

struct KeyType;

#[derive(Debug, PartialEq)]
struct Value(i32);

impl Key for KeyType { type Value = Value; }

#[test] fn test_pairing() {
let mut map = TypeMap::new();
map.insert::(Value(42));
assert_eq!(*map.get::().unwrap(), Value(42));
}
```