enum-table 3.0.0

A library for creating tables with enums as key.
Documentation
use enum_table::{EnumTable, Enumable};

#[derive(Debug, Clone, Copy, PartialEq, Eq, Enumable)]
#[repr(u8)]
pub enum Test {
    A = 100,
    B = 1,
    C = 20,
}

#[test]
fn test() {
    assert_eq!(Test::VARIANTS, &[Test::B, Test::C, Test::A]);

    let mut table = EnumTable::<Test, &'static str, { Test::COUNT }>::new_with_fn(|t| match t {
        Test::A => "A",
        Test::B => "B",
        Test::C => "C",
    });

    assert_eq!(table.get(&Test::A), &"A");
    assert_eq!(table.get(&Test::B), &"B");
    assert_eq!(table.get(&Test::C), &"C");
    assert_eq!(table.get_mut(&Test::A), &mut "A");

    *table.get_mut(&Test::A) = "AA";

    assert_eq!(table.get(&Test::A), &"AA");

    table.set(&Test::A, "AAA");

    assert_eq!(table.get(&Test::A), &"AAA");
}