Macro enum_map::enum_map [] [src]

macro_rules! enum_map {
    {$($t:tt)*} => { ... };
}

Enum map constructor.

This macro allows to create a new enum map in a type safe way. It takes a list of , separated pairs separated by =>. Left side is | separated list of enum keys, or _ to match all unmatched enum keys, while right side is a value.

Examples

#[macro_use]
extern crate enum_map;

#[derive(EnumMap)]
enum Example {
    A,
    B,
    C,
    D,
}

fn main() {
    let enum_map = enum_map! {
        Example::A | Example::B => 1,
        Example::C => 2,
        _ => 3,
    };
    assert_eq!(enum_map[Example::A], 1);
    assert_eq!(enum_map[Example::B], 1);
    assert_eq!(enum_map[Example::C], 2);
    assert_eq!(enum_map[Example::D], 3);
}