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