Skip to main content

MapEnum

Derive Macro MapEnum 

Source
#[derive(MapEnum)]
{
    // Attributes available to this derive:
    #[discriminant]
}
Expand description

§Derive MapEnum for enum

note: keep variant value same as define order (0..variants_count) will get optimized runtime performance,

For tagged enum must add ‘discriminant’ or ‘discriminant(attr_for_discriminant_enum)’ attribute to define additional discriminant enum

#[derive(MapEnum)]
#[discriminant(derive(Clone, Copy))]
enum Enum1 {
    Arm1(u8),
    Arm2
}

will generate discriminant enum additionally:

#[derive(Clone, Copy)]
enum Enum1Discriminant {
    Arm1,
    Arm2
}