pub trait SizedEnum: Sized {
const VARIANTS: usize;
}
Expand description
A derivable trait for enums with public variant quantities, useful to determine their bit size or ensure valid indexes.
§Derivable
You can use this trait with #[derive]
for any enum, even empty ones.
§Examples
#[derive(SizedEnum)]
enum Kind {
A,
B,
C,
}
assert_eq!(Kind::VARIANTS, 3usize);
#[derive(SizedEnum)]
enum Kind {}
assert_eq!(Kind::VARIANTS, 0usize);
Required Associated Constants§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.