xitca_service/middleware/
unchecked_ready.rs1use crate::{ready::ReadyService, service::Service};
2
3#[derive(Clone, Copy)]
6pub struct UncheckedReady;
7
8impl<S, E> Service<Result<S, E>> for UncheckedReady {
9 type Response = UncheckedReadyService<S>;
10 type Error = E;
11
12 async fn call(&self, res: Result<S, E>) -> Result<Self::Response, Self::Error> {
13 res.map(UncheckedReadyService)
14 }
15}
16
17pub struct UncheckedReadyService<S>(S);
18
19impl<S, Req> Service<Req> for UncheckedReadyService<S>
20where
21 S: Service<Req>,
22{
23 type Response = S::Response;
24 type Error = S::Error;
25
26 #[inline]
27 async fn call(&self, req: Req) -> Result<Self::Response, Self::Error> {
28 self.0.call(req).await
29 }
30}
31
32impl<S> ReadyService for UncheckedReadyService<S> {
33 type Ready = ();
34
35 #[inline]
36 async fn ready(&self) -> Self::Ready {}
37}