SizedEnum

Trait SizedEnum 

Source
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§

Source

const VARIANTS: usize

The number of variants the enum has.

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.

Implementors§