#枚举 #整数值 # #字段值

caret

用于声明非穷举的 C 风格枚举的宏,具有命名成员

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 日

696Rust 模式

Download history 446/week @ 2024-04-26 445/week @ 2024-05-03 390/week @ 2024-05-10 393/week @ 2024-05-17 872/week @ 2024-05-24 719/week @ 2024-05-31 383/week @ 2024-06-07 1301/week @ 2024-06-14 1325/week @ 2024-06-21 1490/week @ 2024-06-28 388/week @ 2024-07-05 487/week @ 2024-07-12 749/week @ 2024-07-19 999/week @ 2024-07-26 1382/week @ 2024-08-02 1131/week @ 2024-08-09

4,500 每月下载
40 个 crate 中使用 (6 直接)

MIT/Apache

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

无运行时依赖项

功能