[−][src]Trait enum_map::Enum
Enum mapping type
This trait is internally used by #[derive(Enum)]. Enum<T> is
implemented by any enum type where V is a generic type representing a
value. The purpose of this generic type is to allow providing a value
type for arrays, as Rust currently does not support higher kinded types.
This trait is also implemented by bool and u8. While u8 is
strictly speaking not an actual enum, there are good reasons to consider
it like one, as array of u8 keys is a relatively common pattern.
Associated Types
type Array
Representation of an enum map for type V, usually an array.
Associated Constants
const POSSIBLE_VALUES: usize
Number of possible states the type can have.
Required methods
fn slice(array: &Self::Array) -> &[V]
Gets a slice from an array type.
fn slice_mut(array: &mut Self::Array) -> &mut [V]
Gets a mutable slice from an array type.
fn from_usize(value: usize) -> Self
Takes an usize, and returns an element matching to_usize function.
fn to_usize(self) -> usize
Returns an unique identifier for a value within range of 0..POSSIBLE_VALUES.
fn from_function<F: FnMut(Self) -> V>(f: F) -> Self::Array
Creates an array using a function called for each argument.