78 个版本 (21 个稳定版)
3.0.0-beta.2 | 2023年11月8日 |
---|---|
3.0.0-0.gat.0 |
|
2.7.3 | 2023年11月24日 |
2.6.0 | 2023年6月30日 |
0.2.9 | 2017年7月26日 |
19 在 数据结构 中
每月下载量:436,318
在 570 个crate中(直接使用93个)
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