Macro const_enum::const_enum
source ยท macro_rules! const_enum { {enum $name:ident, $path:path, $prefix:ident { $( $( #[$meta:meta] )* $c:ident ),* $(,)? }} => { ... }; }
Expand description
Turns FFI constants into an enum, freely convertible to and from u32. Enum variants are turned into CamelCase identifiers. An extra variant Other(u32) exists to contain values not known to this num. The parameters are: Enum name, path to constants, constant prefix.
use const_enum::const_enum;
mod sys {
pub const NAME_B: u32 = 1;
}
const_enum! {
// you can also use "this" as the path if the constants are in the same scope. It doesn't work in doctests, though, so I added the "mod sys".
enum TestEnum, sys, NAME_ {
B,
}
}