/enumeric

Enum variant range generation

Primary LanguageRustMIT LicenseMIT

enumeric

Procedural macro to automatically expand enum variants based on a numeric range.

Example

use enumeric::range_enum;

#[range_enum]
enum MyEnum {
    /// Expands to: Item0, Item1, Item2
    #[range(0..3)]
    Item,

    /// This remains unchanged.
    Other,

    /// Expands to: Data10(u8), Data11(u8)
    #[range(10..12)]
    Data(u8),

    /// Expands to: Code20 { id: u16 }, Code21 { id: u16 }, ..., Code22 { id: u16 }
    #[range(20..=22)]
    Code { id: u16 },
}

Currently supports #[range(start..end)] and #[range(start..=end)] syntax. Only integer literals are accepted in the range.

Struct, tuple, and unit variants are all supported.