pub trait Enumerated: Sized + 'static {
    const VARIANTS: &'static [Self];

    // Required method
    fn position(self) -> usize;
}
Expand description

Provides means to map enum values to positions in arrays backing an EnumMap/EnumTable. Not intended to be implemented by hand. Deriving it with #[derive(Enumerated)] attribute macro is preferred.

use enum_collections::Enumerated;
#[derive(Enumerated)]
enum Letter {
    A,
    B,
}

assert_eq!(Letter::VARIANTS.len(), 2);

Required Associated Constants§

source

const VARIANTS: &'static [Self]

Required Methods§

source

fn position(self) -> usize

Maps an enum to a unique position in an array.

Object Safety§

This trait is not object safe.

Implementors§