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}