0.1.2 |
|
---|---|
0.1.1 |
|
#45 in #repr
4KB
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());
许可证
byte-enum可以在Apache 2或MIT许可证下使用。
依赖项
~1.5MB
~35K SLoC