make c_enum use primitive repr

gui-branch
an 2019-03-18 12:08:49 -04:00
parent 6ee6140ba8
commit ee35332b23
1 changed files with 5 additions and 4 deletions

View File

@ -36,16 +36,17 @@ macro_rules! c_enum
{ {
( (
$(#[$outer:meta])* $(#[$outer:meta])*
$vi:vis enum $t:ident: $ti:ty $vi:vis enum $t:ident: $ti:ident
{ {
$($(#[$inner:meta])* $va:expr => $en:ident,)+ $($va:expr => $en:ident,)+
} }
) => { ) => {
$(#[$outer])* $(#[$outer])*
#[repr($ti)]
#[derive(Copy, Clone, Eq, Ord, PartialEq, PartialOrd)] #[derive(Copy, Clone, Eq, Ord, PartialEq, PartialOrd)]
$vi enum $t $vi enum $t
{ {
$($en,)+ $($en = $va,)+
} }
impl $t impl $t
@ -54,7 +55,7 @@ macro_rules! c_enum
$vi fn from_repr(n: $ti) -> Result<Self, ReprError> $vi fn from_repr(n: $ti) -> Result<Self, ReprError>
{ {
match n { match n {
$($(#[$inner])* $va => Ok($t::$en),)+ $($va => Ok($t::$en),)+
n => Err(ReprError::new(n)) n => Err(ReprError::new(n))
} }
} }