Macro enumset::enum_set_type [] [src]

macro_rules! enum_set_type {
    ($(#[$enum_attr:meta])* pub enum $enum_name:ident {
        $($(#[$attr:meta])* $variant:ident),* $(,)*
    } $($rest:tt)*) => { ... };
    ($(#[$enum_attr:meta])* enum $enum_name:ident {
        $($(#[$attr:meta])* $variant:ident),* $(,)*
    } $($rest:tt)*) => { ... };
    () => { ... };
}

Defines enums which can be used with EnumSet.

While attributes and documentation can be attached to the enums, the variants may not contain data.

Copy and Clone are automatically derived for the enums. Other traits must be manually derived or implemented.

Examples

enum_set_type! {
    enum Enum {
        A, B, C, D, E, F, G
    }

    /// Documentation
    pub enum Enum2 {
        A, B, C, D, E, F, G,
        #[doc(hidden)] __NonExhaustive,
    }
}