fixed-map 0.9.5

A fixed map where storage layout is calculated by a procedural macro.
Documentation
#![cfg(feature = "hashbrown")]

use fixed_map::{Key, Map};

#[derive(Clone, Copy, Key)]
enum Part {
    One,
    Two,
}

#[derive(Clone, Copy, Key)]
enum MyKey {
    Simple,
    Composite(Part),
    String(&'static str),
    Number(u32),
    Singleton(()),
}

#[test]
fn map_feature() {
    let mut map = Map::new();

    map.insert(MyKey::Simple, 1);
    map.insert(MyKey::Composite(Part::One), 2);
    map.insert(MyKey::String("foo"), 3);
    map.insert(MyKey::Number(1), 4);
    map.insert(MyKey::Singleton(()), 5);

    assert_eq!(map.get(MyKey::Simple), Some(&1));
    assert_eq!(map.get(MyKey::Composite(Part::One)), Some(&2));
    assert_eq!(map.get(MyKey::Composite(Part::Two)), None);
    assert_eq!(map.get(MyKey::String("foo")), Some(&3));
    assert_eq!(map.get(MyKey::String("bar")), None);
    assert_eq!(map.get(MyKey::Number(1)), Some(&4));
    assert_eq!(map.get(MyKey::Number(2)), None);
    assert_eq!(map.get(MyKey::Singleton(())), Some(&5));
}