0.1.2 |
|
---|---|
0.1.1 |
|
0.1.0 |
|
#30 in #explicit
用于 byte-enum
7KB
145 行
byte-enum
一个ByteEnum
derive宏和trait,用于为Into<u8>
和TryFrom<u8>
实现#[repr(u8)]
枚举。简单明了。
枚举必须是#[repr(u8)]
,无字段,且不得有显式区分符。
use byte_enum::ByteEnum;
#[derive(ByteEnum)]
#[repr(u8)]
enum SomeEnum {
VariantA,
VariantB,
VariantC,
}
let b: u8 = SomeEnum::VariantB.into();
assert_eq!(b, 1);
let c = SomeEnum::try_from(2_u8);
assert_eq!(c, Ok(SomeEnum::VariantC));
let d = SomeEnum::try_from(4_u8);
assert!(d.is_err());
许可证
你可以选择Apache 2或MIT许可证来使用byte-enum。
依赖关系
~1.5MB
~36K SLoC