Trait enum_map::Enum[][src]

pub trait Enum<V>: Sized {
    type Array;

    const POSSIBLE_VALUES: usize;

    fn slice(array: &Self::Array) -> &[V];
fn slice_mut(array: &mut Self::Array) -> &mut [V];
fn from_usize(value: usize) -> Self;
fn to_usize(self) -> usize;
fn from_function<F: FnMut(Self) -> V>(f: F) -> Self::Array; }

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

Representation of an enum map for type V, usually an array.

Associated Constants

Number of possible states the type can have.

Required Methods

Gets a slice from an array type.

Gets a mutable slice from an array type.

Takes an usize, and returns an element matching to_usize function.

Returns an unique identifier for a value within range of 0..POSSIBLE_VALUES.

Creates an array using a function called for each argument.

Implementations on Foreign Types

impl<T> Enum<T> for bool
[src]

impl<T> Enum<T> for u8
[src]

Implementors