This crate provides VariantCount derive macro for enum which adds to it the VARIANT_COUNT constant, containing count of enum variants.
The VariantCount usage example:
#[derive(VariantCount)]
enum Test {
First(i32),
Second(Option<String>),
Third,
}
assert_eq!(Test::VARIANT_COUNT, 3);If you're using Cargo, just add it to your Cargo.toml:
[dependencies]
variant_count = "1.2"MIT