5 releases (breaking)
0.5.0 | Oct 6, 2022 |
---|---|
0.4.0 | Feb 23, 2020 |
0.3.0 | Dec 20, 2019 |
0.2.0 | Dec 18, 2019 |
0.1.0 | Oct 21, 2019 |
#30 in #repr
5,110 downloads per month
17KB
391 lines
derive(IntEnum)
This crate provides a convenient derive macro for the core library's From
and TryFrom
traits for converting between integer and enum types.
[dependencies]
int-enum = "1.1"
Compiler support: requires rustc 1.70+
Example
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'));
License
This project is licensed under either of Apache License, Version 2.0 or MIT License at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~3.5MB
~77K SLoC