make c_enum use primitive repr
parent
6ee6140ba8
commit
ee35332b23
|
@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue