rmp_ipc/
macros.rs

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}