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 |
#789 in Procedural macros
315,923 downloads per month
Used in 74 crates
(via rav1e)
13KB
169 lines
Procedural macro derive that mimics arg_enum!
from clap
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
~265–720KB
~17K SLoC