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}