| Crates.io | byte-enum |
| lib.rs | byte-enum |
| version | 0.1.2 |
| created_at | 2022-05-24 06:05:00.539543+00 |
| updated_at | 2022-05-24 06:11:48.144974+00 |
| description | A derive macro for converting #[repr(u8)] enums to bytes and back. |
| homepage | |
| repository | https://github.com/recatek/byte-enum |
| max_upload_size | |
| id | 592514 |
| size | 7,648 |
A ByteEnum derive macro and trait to implement Into<u8> and TryFrom<u8> for a #[repr(u8)] enum. Simple as.
The enum must be #[repr(u8)], fieldless, and may not have explicit discriminants.
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 may be used under your choice of the Apache 2 or MIT license.