thruster_core/
macros.rs

1#[macro_export]
2macro_rules! map_try {
3  [ $expr:expr, $pat:pat => $mapper:expr ] => ({
4    match $expr {
5        Ok(val) => val,
6        $pat => {
7            let __e = $mapper;
8
9            return Err(Into::into(__e));
10        }
11    }
12  });
13}
14
15#[macro_export]
16macro_rules! async_middleware {
17  ($ctx:ty, [$($x:expr),+]) => {{
18      use thruster::{Chain, Middleware, MiddlewareChain, MiddlewareNext, MiddlewareReturnValue};
19
20      const __THRUSTER_MIDDLEWARE_ARRAY: &'static [
21          fn($ctx, MiddlewareNext<$ctx>) -> MiddlewareReturnValue<$ctx>
22      ] = &[$( $x ),*];
23
24      static __THRUSTER_MIDDLEWARE: Middleware<$ctx> = Middleware {
25          middleware: __THRUSTER_MIDDLEWARE_ARRAY
26      };
27
28      let chain = Chain::new(vec![&__THRUSTER_MIDDLEWARE]);
29
30      MiddlewareChain {
31          chain,
32          assigned: true
33      }
34  }}
35}