Skip to main content

map_enum

Macro map_enum 

Source
map_enum!() { /* proc-macro */ }
Expand description

Map enum to EnumMap, macro version for EnumMap::map_new, can move value, can invoke in const, requires import EnumMap and MapEnum

#[derive(MapEnum)]
enum Enum1 {
    Var0,
    Var1,
}

const ENUM1: EnumMap<Enum1, u8> = map_enum!(match Enum1 {
    Var0 => 2,
    Var1 => 5,
});

#[derive(MapEnum)]
enum Enum2 {
    Kar0,
    Kar1,
}

/// support map multi level enum using tuple,
const ENUM2: EnumMap<Enum1, EnumMap<Enum2, u8>> = map_enum!(match (Enum1, Enum2) {
    (Var0, Kar0) => 2,
    (Var0, Kar1) => 5,
    (Var1, Kar0) => 8,
    (Var1, Kar1) => 9,
});