#枚举 #映射 #数组 # #键值 #安全

无 std enum-map

内部以数组形式表示的类似 C 的枚举键的映射

78 个版本 (21 个稳定版)

3.0.0-beta.22023年11月8日
3.0.0-0.gat.0 2023年9月23日
2.7.3 2023年11月24日
2.6.0 2023年6月30日
0.2.9 2017年7月26日

19数据结构

Download history 104986/week @ 2024-04-12 109499/week @ 2024-04-19 103836/week @ 2024-04-26 101092/week @ 2024-05-03 101345/week @ 2024-05-10 115731/week @ 2024-05-17 110968/week @ 2024-05-24 118050/week @ 2024-05-31 104746/week @ 2024-06-07 108164/week @ 2024-06-14 108211/week @ 2024-06-21 110059/week @ 2024-06-28 103556/week @ 2024-07-05 114397/week @ 2024-07-12 108059/week @ 2024-07-19 93958/week @ 2024-07-26

每月下载量:436,318
570 个crate中(直接使用93个)

MIT/Apache

40KB
740

enum-map

一个库,提供类型安全的枚举数组映射。它是使用常规 Rust 数组实现的,因此使用它们与使用常规 Rust 数组一样快。

此crate遵循“N减二”MSRV策略。这意味着它支持当前的Rust版本,以及之前的两个版本。

示例

#[macro_use]
extern crate enum_map;

use enum_map::EnumMap;

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

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

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

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

lib.rs:

一个枚举映射类型。

它使用数组类型实现,因此使用它与使用 Rust 数组一样快。

示例

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);
}

依赖项

~190KB