#枚举 #宏派生 #整数 #转换 #过程宏 #int #类型

int-enum

整数和枚举类型之间的转换派生宏

10个版本 (4个稳定版)

1.1.2 2024年5月15日
1.1.1 2024年3月18日
1.0.1 2024年2月17日
0.5.0 2022年10月6日
0.1.1 2019年11月25日

#91 in 过程宏

Download history 2406/week @ 2024-05-03 2210/week @ 2024-05-10 2397/week @ 2024-05-17 1980/week @ 2024-05-24 1918/week @ 2024-05-31 1668/week @ 2024-06-07 2364/week @ 2024-06-14 2185/week @ 2024-06-21 2037/week @ 2024-06-28 1875/week @ 2024-07-05 2216/week @ 2024-07-12 1805/week @ 2024-07-19 1951/week @ 2024-07-26 2076/week @ 2024-08-02 2358/week @ 2024-08-09 1775/week @ 2024-08-16

每月下载量:8,535
用于 49 个crate(20个直接使用)

MIT/Apache

12KB
192

derive(IntEnum)

github crates.io docs.rs build status

本crate提供了一个方便的派生宏,用于核心库的 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, Version 2.0或MIT License,由您选择。

贡献

除非您明确说明,否则任何有意提交以包含在本作品中的贡献,根据Apache-2.0许可证的定义,将根据上述条款双许可,不附加任何额外条款或条件。

依赖

~290–740KB
~17K SLoC