enum-table 4.0.0

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

#[derive(Debug, Clone, Copy, PartialEq, Eq, Enumerable)]
#[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 }>::from_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");
}