Crate enum_map

source ·
Expand description

An enum mapping type.

It is implemented using an array type, so using it is as fast as using Rust arrays.

Examples

use enum_map::{enum_map, Enum, EnumMap};

#[derive(Debug, Enum)]
enum Example {
    A(bool),
    B,
    C,
}

let mut map = enum_map! {
    Example::A(false) => 0,
    Example::A(true) => 1,
    Example::B => 2,
    Example::C => 3,
};
map[Example::C] = 4;

assert_eq!(map[Example::A(true)], 1);

for (key, &value) in &map {
    println!("{:?} has {} as value.", key, value);
}

Macros

Structs

  • An enum mapping.
  • A map iterator that moves out of map.
  • An owning iterator over the values of an EnumMap.
  • Immutable enum map iterator
  • Mutable map iterator
  • An iterator over the values of EnumMap.
  • A mutable iterator over the values of EnumMap.

Traits

  • Enum mapping type.
  • Trait associating enum with an array.

Derive Macros

  • Derive macro generating an implementation of trait Enum.