8 releases

0.3.4 Sep 12, 2023
0.3.3 Sep 12, 2023
0.3.2 Nov 18, 2021
0.3.1 Jan 25, 2021
0.1.1 Mar 11, 2019

#727 in Procedural macros

Download history 4842/week @ 2024-02-27 8749/week @ 2024-03-05 20657/week @ 2024-03-12 35490/week @ 2024-03-19 38720/week @ 2024-03-26 38488/week @ 2024-04-02 37818/week @ 2024-04-09 40914/week @ 2024-04-16 42756/week @ 2024-04-23 52605/week @ 2024-04-30 52750/week @ 2024-05-07 50037/week @ 2024-05-14 43482/week @ 2024-05-21 36397/week @ 2024-05-28 36179/week @ 2024-06-04 33039/week @ 2024-06-11

158,040 downloads per month
Used in 31 crates (via rav1e)

MIT license

13KB
169 lines

Procedural macro derive that mimics arg_enum! from clap

Crates.io docs.rs dependency status

Usage

In Cargo.toml:

[dependencies]
arg_enum_proc_macro = "0.3"

In the rust code:

use arg_enum_proc_macro::ArgEnum;

/// All the possible states of Foo
#[derive(ArgEnum)]
pub enum Foo {
    /// Initial state
    Unk,
    /// Foo is on
    On,
    /// Foo is off
    Off,
}

Aliases

It is possible to express an alias using the attribute arg_enum(alias = "AliasVariant"). The FromStr will map the "AliasVariant" string to the decorated enum variant:

/// All the possible states of Foo
#[derive(ArgEnum)]
pub enum Foo {
    /// Initial state
    Unk,
    /// Foo is on
    #[arg_enum(alias = "Up")]
    On,
    /// Foo is off
    #[arg_enum(alias = "Down")]
    Off,
}

Dependencies

~305–760KB
~18K SLoC