#枚举 #整数 #转换 #类型 #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 • Rust 包仓库 1613/week @ 2024-04-03 • Rust 包仓库 1671/week @ 2024-04-10 • Rust 包仓库 1539/week @ 2024-04-17 • Rust 包仓库 2243/week @ 2024-04-24 • Rust 包仓库 2215/week @ 2024-05-01 • Rust 包仓库 1733/week @ 2024-05-08 • Rust 包仓库 2079/week @ 2024-05-15 • Rust 包仓库 1798/week @ 2024-05-22 • Rust 包仓库 1848/week @ 2024-05-29 • Rust 包仓库 1570/week @ 2024-06-05 • Rust 包仓库 1578/week @ 2024-06-12 • Rust 包仓库 1506/week @ 2024-06-19 • Rust 包仓库 1598/week @ 2024-06-26 • Rust 包仓库 1071/week @ 2024-07-03 • Rust 包仓库 1691/week @ 2024-07-10 • Rust 包仓库 1147/week @ 2024-07-17 • Rust 包仓库

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