Macro pavo_traits::impl_from_into_for_enum [−][src]
macro_rules! impl_from_into_for_enum { ($Wrapper:ty, $Inner:ty) => { ... }; }
Expand description
Examples
use pavo_traits::{impl_from_into_for_enum}; mod ffi { // The enum in ffi with C style. #[repr(u32)] #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd)] pub enum MODE_E { MODE_E_A, MODE_E_B, MODE_E_C, } // The API of argumented with MODE_E. pub fn set_mode(mode: MODE_E) -> MODE_E { mode } } // The enum wrapped with Rust style. #[repr(u32)] #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd)] pub enum Mode { A, B, C, } // impl From<ffi::MODE_E>/Into<ffi::MODE_E> for Mode. impl_from_into_for_enum!(Mode, ffi::MODE_E); // Use from/into to convert the types. assert_eq!(Mode::from(ffi::set_mode(Mode::A.into())), Mode::A);