Crates.io | bytenum |
lib.rs | bytenum |
version | 0.1.9 |
source | src |
created_at | 2022-12-09 05:08:32.738728 |
updated_at | 2022-12-12 15:53:08.311393 |
description | Bytenum is a rust derive macro that creates a try_from |
homepage | https://github.com/matthewjberger/bytenum |
repository | https://github.com/matthewjberger/bytenum |
max_upload_size | |
id | 732995 |
size | 6,607 |
Bytenum is a rust derive macro that creates a try_from<T>
implementation for an enum with only unit variants.
All types supported by #[repr(T)]
are supported by bytenum.
Add this to your Cargo.toml
:
bytenum = "0.1.9"
Example:
use bytenum::Bytenum;
#[derive(Bytenum, Debug, PartialEq, Copy, Clone)]
#[repr(u16)]
enum Color {
Red = 0x04,
Green = 0x15,
Blue = 0x34,
}
fn main() -> Result<(), Box<dyn std::error::Error + 'static>> {
assert_eq!(Color::Red, Color::try_from(0x04)?);
assert_eq!(Color::Green, Color::try_from(0x15)?);
assert_eq!(Color::Blue, Color::try_from(0x34)?);
Ok(())
}