macro_rules! impl_FlagEvent {
{ $ty:ident } => { ... };
}Expand description
Implements FlagEvent for a C-like enum
Requiremets:
-
$tymust implementstrum::EnumCountstrum::IntoEnumIterator -
$tytype must implementInto<u16>andTryFrom<u16>(for example using thenum_enumcrate). -
The discriminants must be densely allocated. This will be done automatically by the compiler if explicit discriminants are not specified. (This property is checked in a test.)
-
The variants may not contain any data. This is required for correctness. We think it is checked if you use
num_enum::TryFromPrimitive.
§Example
ⓘ
use num_enum::{IntoPrimitive, TryFromPrimitive};
use strum::{EnumCount, EnumIter};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[derive(EnumIter, EnumCount, IntoPrimitive, TryFromPrimitive)]
#[non_exhaustive]
#[repr(u16)]
pub enum DirEvent {
NewConsensus,
NewDescriptors,
}
impl_FlagEvent!{ DirEvent }