10 releases (4 stable)
1.1.2 | May 15, 2024 |
---|---|
1.1.1 | Mar 18, 2024 |
1.0.1 | Feb 17, 2024 |
0.5.0 | Oct 6, 2022 |
0.1.1 | Nov 25, 2019 |
#87 in Procedural macros
8,564 downloads per month
Used in 51 crates
(22 directly)
12KB
192 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
~285–750KB
~18K SLoC