[−][src]Crate fast_map
A small library and custom derive to create a map-like struct that uses match expressions to get and insert values.
If you know your keys at compile-time, this library will likely be faster than HashMap for supported map operations.
Provides map operations through strict::MapLike, which returns an error when attempting to use unknown keys, and
easy::MapLike, which ignores missing keys and more closely matches the HashMap API.
Usage
use fast_map::easy::MapLike; fn main() { pub enum A { A, B, C, D }; #[derive(Default, fast_map::FastMap)] #[fast_map(keys(A::A, A::B, A::C, A::D))] struct Foo(fast_map::Map4<A, String>); let mut foo = Foo::default(); foo.insert(A::B, "B".into()); assert_eq!(foo.get(A::B), Some(&"B".to_string())); assert_eq!(foo.get(A::C), None); foo.insert(A::C, "C".into()); assert_eq!(foo.values().collect::<Vec<_>>().len(), 2); }
Modules
| easy | Provides a |
| strict | Provides a |
Structs
| Map1 | Container for a |
| Map2 | Container for a |
| Map3 | Container for a |
| Map4 | Container for a |
| Map5 | Container for a |
| Map6 | Container for a |
| Map7 | Container for a |
| Map8 | Container for a |
| Map9 | Container for a |
| Map10 | Container for a |
| Map11 | Container for a |
| Map12 | Container for a |
| Map13 | Container for a |
| Map14 | Container for a |
| Map15 | Container for a |
| Map16 | Container for a |
| Map17 | Container for a |
| Map18 | Container for a |
| Map19 | Container for a |
| Map20 | Container for a |
| Map21 | Container for a |
| Map22 | Container for a |
| Map23 | Container for a |
| Map24 | Container for a |
| Map25 | Container for a |
| Map26 | Container for a |
| Map27 | Container for a |
| Map28 | Container for a |
| Map29 | Container for a |
| Map30 | Container for a |
| Map31 | Container for a |
| Map32 | Container for a |
| Map48 | Container for a |
| Map64 | Container for a |
| Values | Iterator over existing values |
Enums
| Error | Currently just |
Derive Macros
| FastMap |