Macro event
Source macro_rules! event {
($event_type:ty { $($evnet_field:tt)* } $(, $($tt:tt)* )?) => { ... };
($event_data:expr $(, $($tt:tt)* )?) => { ... };
(@load_known $event_builder:expr, $name:ident: $type:ty) => { ... };
(@field $event_builder:expr, $name:ident $(, $($tt:tt)* )?) => { ... };
(@field $event_builder:expr, $name:ident = Map { $($build:tt)* } $(, $($tt:tt)* )?) => { ... };
(@field $event_builder:expr, $name:ident = $struct:ident { $(build:tt)* } $(, $($tt:tt)* )?) => { ... };
(@field $event_builder:expr, $name:ident = $value:expr $(, $($tt:tt)* )?) => { ... };
(@field $event_builder:expr $(,)? ) => { ... };
}