19 个版本
0.4.6 | 2024 年 6 月 5 日 |
---|---|
0.4.4 | 2023 年 9 月 5 日 |
0.4.2 | 2023 年 6 月 30 日 |
0.3.2 | 2023 年 3 月 31 日 |
0.0.0 | 2021 年 6 月 24 日 |
696 在 Rust 模式 中
4,500 每月下载
在 40 个 crate 中使用 (6 直接)
9KB
102 行
caret
具有一些命名值的整数。
哎呀!另一个 Rust 枚举工具?
假设你有一个具有一些命名值的整数类型。例如,你可能正在实现一个协议,其中 "命令" 可以是任何 8 位值,但只有少数命令被识别。
在这种情况下,你可以使用 caret_int
宏来定义一个围绕 u8
的包装器,以便命名值以它们的首选格式显示,但你仍然可以表示该字段的其它所有值
use caret::caret_int;
caret_int!{
struct Command(u8) {
Get = 0,
Put = 1,
Swap = 2,
}
}
let c1: Command = 2.into();
let c2: Command = 100.into();
assert_eq!(c1.to_string().as_str(), "Swap");
assert_eq!(c2.to_string().as_str(), "100");
assert_eq!(c1, Command::Swap);
此 crate 作为 Arti 的一部分开发,Arti 是一个用 Rust 实现 Tor 的项目。Arti 中的许多其他 crate 都依赖于它,但它应该是通用的。
许可证:MIT 或 Apache-2.0