1#[macro_export]
2macro_rules! callback {
3 ($cb:ident) => {
4 |ctx, event| Box::pin($cb(ctx, event))
5 };
6 ($cb:path) => {
7 |ctx, event| Box::pin($cb(ctx, event))
8 };
9 ($ctx:ident, $event:ident,$cb:expr) => {
10 move |$ctx, $event| Box::pin($cb)
11 };
12}
13
14#[macro_export]
15macro_rules! namespace {
16 ($nsp:path) => {
17 Namespace::from_provider::<$nsp>()
18 };
19}
20
21#[macro_export]
22macro_rules! events{
23 ($handler:expr, $($name:expr => $cb:ident), *) => {
24 $(
25 $handler.on($name, callback!($cb));
26 )*
27 };
28 ($handler:expr, $($name:expr => $cb:path), *) => {
29 $(
30 $handler.on($name, callback!($cb));
31 )*
32 }
33}