3个版本 (破坏性更新)
0.3.0 | 2024年3月3日 |
---|---|
0.2.0 | 2024年3月3日 |
0.1.0 | 2024年3月3日 |
#470 in 嵌入式开发
每月下载量43次
60KB
780 行
EnuMap
枚举的HashMap和HashSet类似接口,由数组支持。
enumap
与 no_std
兼容,无依赖和proc宏,编译速度极快。
使用方法
此包位于crates.io上,您可以通过将其添加到项目的 Cargo.toml
依赖项中来进行使用。
[dependencies]
enumap = "0.3"
示例
use enumap::{EnumMap, EnumSet};
enumap::enumap! {
/// A beautiful fruit, ready to be sold.
#[derive(Debug)]
enum Fruit {
Orange,
Banana,
Grape,
}
}
// A fruit shop: fruit -> stock.
let mut shop = EnumMap::new();
let mut orders = EnumSet::new();
shop.insert(Fruit::Orange, 100);
shop.insert(Fruit::Banana, 200);
for (fruit, amount) in &shop {
println!("There are {amount} {fruit:?}s in stock!");
}
if !shop.contains_key(Fruit::Grape) {
println!("Sorry no grapes in stock :(");
orders.insert(Fruit::Grape);
}
for fruit in &orders {
println!("{fruit:?} needs to be ordered!");
}
查看文档以获取更多示例!
依赖项
~175KB