# derive(IntEnum)
[](https://github.com/Juici/int-enum-rs)
[](https://crates.io/crates/int-enum)
[](https://docs.rs/int-enum)
[](https://github.com/Juici/int-enum-rs/actions?query=branch%3Amaster)
This crate provides a convenient derive macro for the core library's [`From`]
and [`TryFrom`] traits for converting between integer and enum types.
[`From`]: https://doc.rust-lang.org/core/convert/trait.From.html
[`TryFrom`]: https://doc.rust-lang.org/core/convert/trait.TryFrom.html
```toml
[dependencies]
int-enum = "1.1"
```
_Compiler support: requires rustc 1.70+_
## Example
```rs
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](LICENSE-APACHE)
or [MIT License](LICENSE-MIT) 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.