1 个稳定版本
1.0.0 | 2022 年 9 月 29 日 |
---|
#16 在 #判别式 中
在 3 个包中使用(通过 gb-cpu-sim)
22KB
263 行代码(不包括注释)
derive(TryFrom, From)
此库提供了用于标准库的 std::convert::TryFrom
和 std::convert::From
特性的方便的 derive 宏。
示例
[dependencies]
try-from-discrim = "1.0"
然后
#[macro_use] extern crate try_from_discrim;
#[derive(TryFrom)]
#[from(u8)]
enum RegisterIndex {
B = 0,
C = 1,
D = 2,
E = 3,
H = 4,
L = 5,
HlInd = 6,
A = 7,
}
(在 Rust 2018 或更高版本中,无需 extern crate
行。)
判别式也可以省略!请参阅文档了解更多信息。
详细信息
- 此包故意不进入您的公共 API。提供的实现与手动编写的实现相同,因此从手动编写的
impl
切换到此包或反之亦然不是破坏性更改。 - 使用标准库转换特性可以与更多代码一起工作,而不是实现自定义特性。
- 非穷举枚举仍然可以使用后备变体实现
From
。
生成的实现与 #[no_std]
环境兼容。
许可证
此包受 Mozilla 公共许可证 2.0 的许可,请参阅 LICENSE 文件。
依赖项
~1.5MB
~35K SLoC