[][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 MapLike trait that ignores errors on missing keys (more like HashMap API)

strict

Provides a MapLike trait that errors when trying to get or insert missing keys

Structs

Map1

Container for a map with 1 field

Map2

Container for a map with 2 fields

Map3

Container for a map with 3 fields

Map4

Container for a map with 4 fields

Map5

Container for a map with 5 fields

Map6

Container for a map with 6 fields

Map7

Container for a map with 7 fields

Map8

Container for a map with 8 fields

Map9

Container for a map with 9 fields

Map10

Container for a map with 10 fields

Map11

Container for a map with 11 fields

Map12

Container for a map with 12 fields

Map13

Container for a map with 13 fields

Map14

Container for a map with 14 fields

Map15

Container for a map with 15 fields

Map16

Container for a map with 16 fields

Map17

Container for a map with 17 fields

Map18

Container for a map with 18 fields

Map19

Container for a map with 19 fields

Map20

Container for a map with 20 fields

Map21

Container for a map with 21 fields

Map22

Container for a map with 22 fields

Map23

Container for a map with 23 fields

Map24

Container for a map with 24 fields

Map25

Container for a map with 25 fields

Map26

Container for a map with 26 fields

Map27

Container for a map with 27 fields

Map28

Container for a map with 28 fields

Map29

Container for a map with 29 fields

Map30

Container for a map with 30 fields

Map31

Container for a map with 31 fields

Map32

Container for a map with 32 fields

Map48

Container for a map with 48 fields

Map64

Container for a map with 64 fields

Values

Iterator over existing values

Enums

Error

Currently just KeyNotFound

Derive Macros

FastMap