xitca_service/service/enclosed.rs
1use crate::pipeline::{PipelineT, marker::BuildEnclosed};
2
3use super::Service;
4
5impl<F, T, Arg> Service<Arg> for PipelineT<F, T, BuildEnclosed>
6where
7 F: Service<Arg>,
8 T: Service<Result<F::Response, F::Error>>,
9{
10 type Response = T::Response;
11 type Error = T::Error;
12
13 async fn call(&self, arg: Arg) -> Result<Self::Response, Self::Error> {
14 let res = self.first.call(arg).await;
15 self.second.call(res).await
16 }
17}