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,
});