ev_apple/macros.rs
1// macro to easier implement Message trait which
2// defines where do messages go
3
4#[macro_export]
5macro_rules! messages_internal {
6 ($i:ty) => {
7 _
8 };
9}
10
11#[macro_export]
12macro_rules! messages {
13 ($enu:ident, $( $x:ident $( ( $( $s:ty),* ) )? => $y:expr ),* $( , )?) => {
14 use ev_apple::messages_internal;
15
16 #[derive(Clone, PartialEq, Debug)]
17 pub enum $enu {
18 $( $x $( ( $( $s ),* ) )? ),*
19 }
20
21 impl Message for $enu {
22 fn id(&self) -> u32 {
23 match self {
24 $( $enu::$x $( ( $( messages_internal!($s) ),* ) )? => $y ),*
25 }
26 }
27 }
28 }
29}