medi_rs/handler/
macros.rs1#[macro_export]
2macro_rules! impl_static_handler {
3 ($($T:ident : $I:ident),*) => {
4 impl<F, Fut, R, Req, Res, E, $($T, $I,)*>
5 $crate::StaticHandler<R, Req, ($($crate::Dependency<$T, $I>,)*)> for F
6 where
7 F: FnOnce($($T,)* Req) -> Fut + Clone + Send,
8 Req: Send,
9 Res: Send,
10 E: Send,
11 $(R: $crate::tlist::Get<$T, $I>,)*
12 Fut: core::future::Future<Output = core::result::Result<Res, E>> + Send,
13 {
14 type Response = Res;
15 type Error = E;
16
17 fn handle(self, resources: &R, value: Req)
18 -> impl core::future::Future<Output = core::result::Result<Self::Response, Self::Error>> + Send
19 {
20 let _ = resources;
21 let future = self($($crate::tlist::get::<$T, $I, R>(resources),)* value);
22 future
23 }
24 }
25 };
26}