# derive(IntEnum) [github](https://github.com/Juici/int-enum-rs) [crates.io](https://crates.io/crates/int-enum) [docs.rs](https://docs.rs/int-enum) [build status](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.