#枚举 #整数 #转换 #类型 #repr # #int-enum

no-std int-enum-impl

int-enum 库的实现细节

5个版本 (破坏性更新)

0.5.0 2022年10月6日
0.4.0 2020年2月23日
0.3.0 2019年12月20日
0.2.0 2019年12月18日
0.1.0 2019年10月21日

#33#repr

Download history 1613/week @ 2024-04-03 1671/week @ 2024-04-10 1539/week @ 2024-04-17 2243/week @ 2024-04-24 2215/week @ 2024-05-01 1733/week @ 2024-05-08 2079/week @ 2024-05-15 1798/week @ 2024-05-22 1848/week @ 2024-05-29 1570/week @ 2024-06-05 1578/week @ 2024-06-12 1506/week @ 2024-06-19 1598/week @ 2024-06-26 1071/week @ 2024-07-03 1691/week @ 2024-07-10 1147/week @ 2024-07-17

5,759 每月下载量

MIT/Apache

17KB
391

derive(IntEnum)

github crates.io docs.rs build status

此库提供了一种方便的 derive 宏,用于核心库的 FromTryFrom 特性,用于在整数和枚举类型之间进行转换。

[dependencies]
int-enum = "1.1"

编译器支持:需要 rustc 1.70+

示例

use int_enum::IntEnum;

#[repr(u8)]
#[derive(Debug, PartialEq, IntEnum)]
pub enum Ascii {
   UpperA = b'A',
   UpperB = b'B',
}

assert_eq!(u8::from(Ascii::UpperA), b'A');
assert_eq!(u8::from(Ascii::UpperB), b'B');

assert_eq!(Ascii::try_from(b'A'), Ok(Ascii::UpperA));
assert_eq!(Ascii::try_from(b'B'), Ok(Ascii::UpperB));
assert_eq!(Ascii::try_from(b'C'), Err(b'C'));

许可证

本项目采用 Apache License 2.0 或 MIT 许可证,您可选择其一。

贡献

除非您明确表示,否则根据 Apache-2.0 许可证定义的,您提交给本项目以供包含的任何贡献,都将按上述方式双授权,不附加任何额外条款或条件。

依赖项

~3.5MB
~75K SLoC