pub trait Service<S, Request>: Sized + Send + Sync + 'static {
type Response: Send + 'static;
type Error: Send + Sync + 'static;
// Required method
fn serve(
&self,
ctx: Context<S>,
req: Request
) -> impl Future<Output = Result<Self::Response, Self::Error>> + Send + '_;
// Provided method
fn boxed(self) -> BoxService<S, Request, Self::Response, Self::Error> { ... }
}
Expand description
A Service
that produces rama services,
to serve requests with, be it transport layer requests or application layer requests.
Required Associated Types§
Required Methods§
Provided Methods§
sourcefn boxed(self) -> BoxService<S, Request, Self::Response, Self::Error>
fn boxed(self) -> BoxService<S, Request, Self::Response, Self::Error>
Box this service to allow for dynamic dispatch.
Object Safety§
This trait is not object safe.
Implementations on Foreign Types§
source§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, M_T7, T7, M_T8, T8, M_T9, T9, M_T10, T10, M_T11, T11, M_T12, T12, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), (M_T8, T8), (M_T9, T9), (M_T10, T10), (M_T11, T11), (M_T12, T12), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
M_T7: Matcher<State, Request>,
T7: Service<State, Request, Response = Response, Error = Error>,
M_T8: Matcher<State, Request>,
T8: Service<State, Request, Response = Response, Error = Error>,
M_T9: Matcher<State, Request>,
T9: Service<State, Request, Response = Response, Error = Error>,
M_T10: Matcher<State, Request>,
T10: Service<State, Request, Response = Response, Error = Error>,
M_T11: Matcher<State, Request>,
T11: Service<State, Request, Response = Response, Error = Error>,
M_T12: Matcher<State, Request>,
T12: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, M_T7, T7, M_T8, T8, M_T9, T9, M_T10, T10, M_T11, T11, M_T12, T12, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), (M_T8, T8), (M_T9, T9), (M_T10, T10), (M_T11, T11), (M_T12, T12), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
M_T7: Matcher<State, Request>,
T7: Service<State, Request, Response = Response, Error = Error>,
M_T8: Matcher<State, Request>,
T8: Service<State, Request, Response = Response, Error = Error>,
M_T9: Matcher<State, Request>,
T9: Service<State, Request, Response = Response, Error = Error>,
M_T10: Matcher<State, Request>,
T10: Service<State, Request, Response = Response, Error = Error>,
M_T11: Matcher<State, Request>,
T11: Service<State, Request, Response = Response, Error = Error>,
M_T12: Matcher<State, Request>,
T12: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
source§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, M_T7, T7, M_T8, T8, M_T9, T9, M_T10, T10, M_T11, T11, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), (M_T8, T8), (M_T9, T9), (M_T10, T10), (M_T11, T11), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
M_T7: Matcher<State, Request>,
T7: Service<State, Request, Response = Response, Error = Error>,
M_T8: Matcher<State, Request>,
T8: Service<State, Request, Response = Response, Error = Error>,
M_T9: Matcher<State, Request>,
T9: Service<State, Request, Response = Response, Error = Error>,
M_T10: Matcher<State, Request>,
T10: Service<State, Request, Response = Response, Error = Error>,
M_T11: Matcher<State, Request>,
T11: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, M_T7, T7, M_T8, T8, M_T9, T9, M_T10, T10, M_T11, T11, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), (M_T8, T8), (M_T9, T9), (M_T10, T10), (M_T11, T11), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
M_T7: Matcher<State, Request>,
T7: Service<State, Request, Response = Response, Error = Error>,
M_T8: Matcher<State, Request>,
T8: Service<State, Request, Response = Response, Error = Error>,
M_T9: Matcher<State, Request>,
T9: Service<State, Request, Response = Response, Error = Error>,
M_T10: Matcher<State, Request>,
T10: Service<State, Request, Response = Response, Error = Error>,
M_T11: Matcher<State, Request>,
T11: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
source§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, M_T7, T7, M_T8, T8, M_T9, T9, M_T10, T10, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), (M_T8, T8), (M_T9, T9), (M_T10, T10), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
M_T7: Matcher<State, Request>,
T7: Service<State, Request, Response = Response, Error = Error>,
M_T8: Matcher<State, Request>,
T8: Service<State, Request, Response = Response, Error = Error>,
M_T9: Matcher<State, Request>,
T9: Service<State, Request, Response = Response, Error = Error>,
M_T10: Matcher<State, Request>,
T10: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, M_T7, T7, M_T8, T8, M_T9, T9, M_T10, T10, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), (M_T8, T8), (M_T9, T9), (M_T10, T10), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
M_T7: Matcher<State, Request>,
T7: Service<State, Request, Response = Response, Error = Error>,
M_T8: Matcher<State, Request>,
T8: Service<State, Request, Response = Response, Error = Error>,
M_T9: Matcher<State, Request>,
T9: Service<State, Request, Response = Response, Error = Error>,
M_T10: Matcher<State, Request>,
T10: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
source§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, M_T7, T7, M_T8, T8, M_T9, T9, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), (M_T8, T8), (M_T9, T9), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
M_T7: Matcher<State, Request>,
T7: Service<State, Request, Response = Response, Error = Error>,
M_T8: Matcher<State, Request>,
T8: Service<State, Request, Response = Response, Error = Error>,
M_T9: Matcher<State, Request>,
T9: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, M_T7, T7, M_T8, T8, M_T9, T9, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), (M_T8, T8), (M_T9, T9), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
M_T7: Matcher<State, Request>,
T7: Service<State, Request, Response = Response, Error = Error>,
M_T8: Matcher<State, Request>,
T8: Service<State, Request, Response = Response, Error = Error>,
M_T9: Matcher<State, Request>,
T9: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
source§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, M_T7, T7, M_T8, T8, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), (M_T8, T8), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
M_T7: Matcher<State, Request>,
T7: Service<State, Request, Response = Response, Error = Error>,
M_T8: Matcher<State, Request>,
T8: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, M_T7, T7, M_T8, T8, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), (M_T8, T8), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
M_T7: Matcher<State, Request>,
T7: Service<State, Request, Response = Response, Error = Error>,
M_T8: Matcher<State, Request>,
T8: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
source§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, M_T7, T7, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
M_T7: Matcher<State, Request>,
T7: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, M_T7, T7, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
M_T7: Matcher<State, Request>,
T7: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
source§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
M_T6: Matcher<State, Request>,
T6: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
source§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
M_T5: Matcher<State, Request>,
T5: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
source§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
M_T4: Matcher<State, Request>,
T4: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
source§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
impl<State, M_T1, T1, M_T2, T2, M_T3, T3, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
M_T3: Matcher<State, Request>,
T3: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
source§impl<State, M_T1, T1, M_T2, T2, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
impl<State, M_T1, T1, M_T2, T2, S, Error> Service<State, Request<Body>> for ((M_T1, T1), (M_T2, T2), S)where
State: Send + Sync + 'static,
M_T1: Matcher<State, Request>,
T1: Service<State, Request, Response = Response, Error = Error>,
M_T2: Matcher<State, Request>,
T2: Service<State, Request, Response = Response, Error = Error>,
S: Service<State, Request, Response = Response, Error = Error>,
Error: Send + Sync + 'static,
Implementors§
source§impl<A, B, C, D, E, F, G, H, I, State, Request, Response> Service<State, Request> for Either9<A, B, C, D, E, F, G, H, I>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
D: Service<State, Request, Response = Response>,
D::Error: Into<BoxError>,
E: Service<State, Request, Response = Response>,
E::Error: Into<BoxError>,
F: Service<State, Request, Response = Response>,
F::Error: Into<BoxError>,
G: Service<State, Request, Response = Response>,
G::Error: Into<BoxError>,
H: Service<State, Request, Response = Response>,
H::Error: Into<BoxError>,
I: Service<State, Request, Response = Response>,
I::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
impl<A, B, C, D, E, F, G, H, I, State, Request, Response> Service<State, Request> for Either9<A, B, C, D, E, F, G, H, I>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
D: Service<State, Request, Response = Response>,
D::Error: Into<BoxError>,
E: Service<State, Request, Response = Response>,
E::Error: Into<BoxError>,
F: Service<State, Request, Response = Response>,
F::Error: Into<BoxError>,
G: Service<State, Request, Response = Response>,
G::Error: Into<BoxError>,
H: Service<State, Request, Response = Response>,
H::Error: Into<BoxError>,
I: Service<State, Request, Response = Response>,
I::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
source§impl<A, B, C, D, E, F, G, H, State, Request, Response> Service<State, Request> for Either8<A, B, C, D, E, F, G, H>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
D: Service<State, Request, Response = Response>,
D::Error: Into<BoxError>,
E: Service<State, Request, Response = Response>,
E::Error: Into<BoxError>,
F: Service<State, Request, Response = Response>,
F::Error: Into<BoxError>,
G: Service<State, Request, Response = Response>,
G::Error: Into<BoxError>,
H: Service<State, Request, Response = Response>,
H::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
impl<A, B, C, D, E, F, G, H, State, Request, Response> Service<State, Request> for Either8<A, B, C, D, E, F, G, H>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
D: Service<State, Request, Response = Response>,
D::Error: Into<BoxError>,
E: Service<State, Request, Response = Response>,
E::Error: Into<BoxError>,
F: Service<State, Request, Response = Response>,
F::Error: Into<BoxError>,
G: Service<State, Request, Response = Response>,
G::Error: Into<BoxError>,
H: Service<State, Request, Response = Response>,
H::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
source§impl<A, B, C, D, E, F, G, State, Request, Response> Service<State, Request> for Either7<A, B, C, D, E, F, G>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
D: Service<State, Request, Response = Response>,
D::Error: Into<BoxError>,
E: Service<State, Request, Response = Response>,
E::Error: Into<BoxError>,
F: Service<State, Request, Response = Response>,
F::Error: Into<BoxError>,
G: Service<State, Request, Response = Response>,
G::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
impl<A, B, C, D, E, F, G, State, Request, Response> Service<State, Request> for Either7<A, B, C, D, E, F, G>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
D: Service<State, Request, Response = Response>,
D::Error: Into<BoxError>,
E: Service<State, Request, Response = Response>,
E::Error: Into<BoxError>,
F: Service<State, Request, Response = Response>,
F::Error: Into<BoxError>,
G: Service<State, Request, Response = Response>,
G::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
source§impl<A, B, C, D, E, F, State, Request, Response> Service<State, Request> for Either6<A, B, C, D, E, F>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
D: Service<State, Request, Response = Response>,
D::Error: Into<BoxError>,
E: Service<State, Request, Response = Response>,
E::Error: Into<BoxError>,
F: Service<State, Request, Response = Response>,
F::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
impl<A, B, C, D, E, F, State, Request, Response> Service<State, Request> for Either6<A, B, C, D, E, F>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
D: Service<State, Request, Response = Response>,
D::Error: Into<BoxError>,
E: Service<State, Request, Response = Response>,
E::Error: Into<BoxError>,
F: Service<State, Request, Response = Response>,
F::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
source§impl<A, B, C, D, E, State, Request, Response> Service<State, Request> for Either5<A, B, C, D, E>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
D: Service<State, Request, Response = Response>,
D::Error: Into<BoxError>,
E: Service<State, Request, Response = Response>,
E::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
impl<A, B, C, D, E, State, Request, Response> Service<State, Request> for Either5<A, B, C, D, E>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
D: Service<State, Request, Response = Response>,
D::Error: Into<BoxError>,
E: Service<State, Request, Response = Response>,
E::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
source§impl<A, B, C, D, State, Request, Response> Service<State, Request> for Either4<A, B, C, D>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
D: Service<State, Request, Response = Response>,
D::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
impl<A, B, C, D, State, Request, Response> Service<State, Request> for Either4<A, B, C, D>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
D: Service<State, Request, Response = Response>,
D::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
source§impl<A, B, C, State, Request, Response> Service<State, Request> for Either3<A, B, C>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
impl<A, B, C, State, Request, Response> Service<State, Request> for Either3<A, B, C>where
A: Service<State, Request, Response = Response>,
A::Error: Into<BoxError>,
B: Service<State, Request, Response = Response>,
B::Error: Into<BoxError>,
C: Service<State, Request, Response = Response>,
C::Error: Into<BoxError>,
Request: Send + 'static,
State: Send + Sync + 'static,
Response: Send + 'static,
source§impl<A, C, L, S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for ProxyAuthService<A, C, S, L>
impl<A, C, L, S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for ProxyAuthService<A, C, S, L>
source§impl<B, State, S, Response, IO> Service<State, IO> for HttpService<B, S, State>where
B: HyperConnServer,
State: Send + Sync + 'static,
S: Service<State, Request, Response = Response, Error = Infallible>,
Response: IntoResponse + Send + 'static,
IO: Stream,
impl<B, State, S, Response, IO> Service<State, IO> for HttpService<B, S, State>where
B: HyperConnServer,
State: Send + Sync + 'static,
S: Service<State, Request, Response = Response, Error = Infallible>,
Response: IntoResponse + Send + 'static,
IO: Stream,
source§impl<F, S, State, ReqBody, ResBody, NewReqBody> Service<State, Request<ReqBody>> for MapRequestBody<S, F>
impl<F, S, State, ReqBody, ResBody, NewReqBody> Service<State, Request<ReqBody>> for MapRequestBody<S, F>
source§impl<F, S, State, ReqBody, ResBody, NewResBody> Service<State, Request<ReqBody>> for MapResponseBody<S, F>
impl<F, S, State, ReqBody, ResBody, NewResBody> Service<State, Request<ReqBody>> for MapResponseBody<S, F>
source§impl<H, S, State, Body> Service<State, Request<Body>> for GetForwardedHeadersService<S, H>
impl<H, S, State, Body> Service<State, Request<Body>> for GetForwardedHeadersService<S, H>
source§impl<Input> Service<(), Input> for TcpEchoService
impl<Input> Service<(), Input> for TcpEchoService
source§impl<ReqBody, ResBody, S, P, State> Service<State, Request<ReqBody>> for Compression<S, P>
impl<ReqBody, ResBody, S, P, State> Service<State, Request<ReqBody>> for Compression<S, P>
source§impl<ReqBody, ResBody, S, State> Service<State, Request<ReqBody>> for PropagateHeader<S>
impl<ReqBody, ResBody, S, State> Service<State, Request<ReqBody>> for PropagateHeader<S>
source§impl<ReqBody, ResBody, S, State, Auth> Service<State, Request<ReqBody>> for AsyncRequireAuthorization<S, Auth>
impl<ReqBody, ResBody, S, State, Auth> Service<State, Request<ReqBody>> for AsyncRequireAuthorization<S, Auth>
type Response = Response<ResBody>
type Error = <S as Service<State, Request<<Auth as AsyncAuthorizeRequest<State, ReqBody>>::RequestBody>>>::Error
source§impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for RemoveRequestHeader<S>
impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for RemoveRequestHeader<S>
source§impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for RemoveResponseHeader<S>
impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for RemoveResponseHeader<S>
source§impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for AddRequiredRequestHeaders<S>
impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for AddRequiredRequestHeaders<S>
source§impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for AddRequiredResponseHeaders<S>
impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for AddRequiredResponseHeaders<S>
source§impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for SetSensitiveRequestHeaders<S>
impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for SetSensitiveRequestHeaders<S>
source§impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for SetSensitiveResponseHeaders<S>
impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for SetSensitiveResponseHeaders<S>
source§impl<ReqBody, ResBody, State, S, M> Service<State, Request<ReqBody>> for SetRequestHeader<S, M>
impl<ReqBody, ResBody, State, S, M> Service<State, Request<ReqBody>> for SetRequestHeader<S, M>
source§impl<ReqBody, ResBody, State, S, M> Service<State, Request<ReqBody>> for SetResponseHeader<S, M>
impl<ReqBody, ResBody, State, S, M> Service<State, Request<ReqBody>> for SetResponseHeader<S, M>
source§impl<ReqBody, ResBody, State, S, V> Service<State, Request<ReqBody>> for ValidateRequestHeader<S, V>
impl<ReqBody, ResBody, State, S, V> Service<State, Request<ReqBody>> for ValidateRequestHeader<S, V>
source§impl<S, D, P, F, State, Request> Service<State, Request> for ProxyDBService<S, D, P, F>where
S: Service<State, Request>,
S::Error: Into<BoxError> + Send + Sync + 'static,
D: ProxyDB,
D::Error: Into<BoxError> + Send + Sync + 'static,
P: ProxyQueryPredicate,
F: UsernameFormatter,
State: Send + Sync + 'static,
Request: TryRefIntoTransportContext<State> + Send + 'static,
Request::Error: Into<BoxError> + Send + Sync + 'static,
impl<S, D, P, F, State, Request> Service<State, Request> for ProxyDBService<S, D, P, F>where
S: Service<State, Request>,
S::Error: Into<BoxError> + Send + Sync + 'static,
D: ProxyDB,
D::Error: Into<BoxError> + Send + Sync + 'static,
P: ProxyQueryPredicate,
F: UsernameFormatter,
State: Send + Sync + 'static,
Request: TryRefIntoTransportContext<State> + Send + 'static,
Request::Error: Into<BoxError> + Send + Sync + 'static,
source§impl<S, F, R, State, Body> Service<State, Request<Body>> for ErrorHandler<S, F>
impl<S, F, R, State, Body> Service<State, Request<Body>> for ErrorHandler<S, F>
source§impl<S, F, State, R1, R2> Service<State, R1> for MapRequest<S, F>
impl<S, F, State, R1, R2> Service<State, R1> for MapRequest<S, F>
source§impl<S, F, State, Request> Service<State, Request> for ConsumeErr<S, F>
impl<S, F, State, Request> Service<State, Request> for ConsumeErr<S, F>
source§impl<S, F, State, Request, Response> Service<State, Request> for MapResponse<S, F>
impl<S, F, State, Request, Response> Service<State, Request> for MapResponse<S, F>
source§impl<S, F, State, Request, Response, Error, Fut> Service<State, Request> for Then<S, F>where
S: Service<State, Request>,
S::Error: Into<Error>,
F: FnOnce(Result<S::Response, S::Error>) -> Fut + Clone + Send + Sync + 'static,
Fut: Future<Output = Result<Response, Error>> + Send + 'static,
State: Send + Sync + 'static,
Request: Send + 'static,
Response: Send + 'static,
Error: Send + Sync + 'static,
impl<S, F, State, Request, Response, Error, Fut> Service<State, Request> for Then<S, F>where
S: Service<State, Request>,
S::Error: Into<Error>,
F: FnOnce(Result<S::Response, S::Error>) -> Fut + Clone + Send + Sync + 'static,
Fut: Future<Output = Result<Response, Error>> + Send + 'static,
State: Send + Sync + 'static,
Request: Send + 'static,
Response: Send + 'static,
Error: Send + Sync + 'static,
source§impl<S, H, M, State, Request> Service<State, Request> for HijackService<S, H, M>
impl<S, H, M, State, Request> Service<State, Request> for HijackService<S, H, M>
source§impl<S, H, State, Body> Service<State, Request<Body>> for SetForwardedHeadersService<S, H>
impl<S, H, State, Body> Service<State, Request<Body>> for SetForwardedHeadersService<S, H>
source§impl<S, P, State, Request, T> Service<State, Request> for rama::proxy::pp::client::HaProxyService<S, P, One>
impl<S, P, State, Request, T> Service<State, Request> for rama::proxy::pp::client::HaProxyService<S, P, One>
source§impl<S, P, State, Request, T> Service<State, Request> for rama::proxy::pp::client::HaProxyService<S, P, Two>
impl<S, P, State, Request, T> Service<State, Request> for rama::proxy::pp::client::HaProxyService<S, P, Two>
source§impl<S, Request> Service<S, Request> for IdentityService
impl<S, Request> Service<S, Request> for IdentityService
type Response = Request
type Error = Infallible
source§impl<S, Request, Response, Error> Service<S, Request> for BoxService<S, Request, Response, Error>
impl<S, Request, Response, Error> Service<S, Request> for BoxService<S, Request, Response, Error>
source§impl<S, State, Body> Service<State, Request<Body>> for ErrorHandler<S, ()>where
S: Service<State, Request<Body>>,
S::Response: IntoResponse,
S::Error: IntoResponse,
State: Send + Sync + 'static,
Body: Send + 'static,
impl<S, State, Body> Service<State, Request<Body>> for ErrorHandler<S, ()>where
S: Service<State, Request<Body>>,
S::Response: IntoResponse,
S::Error: IntoResponse,
State: Send + Sync + 'static,
Body: Send + 'static,
source§impl<S, State, Body> Service<State, Request<Body>> for RequestMetricsService<S>
impl<S, State, Body> Service<State, Request<Body>> for RequestMetricsService<S>
source§impl<S, State, Body> Service<State, Request<Body>> for UserAgentClassifier<S>
impl<S, State, Body> Service<State, Request<Body>> for UserAgentClassifier<S>
source§impl<S, State, Body, T> Service<State, Request<Body>> for HttpProxyConnectorService<S>
impl<S, State, Body, T> Service<State, Request<Body>> for HttpProxyConnectorService<S>
source§impl<S, State, IO> Service<State, IO> for rama::net::stream::layer::http::BodyLimitService<S>
impl<S, State, IO> Service<State, IO> for rama::net::stream::layer::http::BodyLimitService<S>
source§impl<S, State, ReqBody> Service<State, Request<ReqBody>> for rama::http::layer::body_limit::BodyLimitService<S>
impl<S, State, ReqBody> Service<State, Request<ReqBody>> for rama::http::layer::body_limit::BodyLimitService<S>
source§impl<S, State, ReqBody> Service<State, Request<ReqBody>> for rama::service::layer::http::BodyLimitService<S>
impl<S, State, ReqBody> Service<State, Request<ReqBody>> for rama::service::layer::http::BodyLimitService<S>
source§impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for AddAuthorization<S>
impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for AddAuthorization<S>
source§impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for Decompression<S>
impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for Decompression<S>
source§impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for NormalizePath<S>
impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for NormalizePath<S>
source§impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for rama::http::layer::timeout::Timeout<S>
impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for rama::http::layer::timeout::Timeout<S>
source§impl<S, State, ReqBody, ResBody, D> Service<State, Request<ReqBody>> for RequestDecompression<S>
impl<S, State, ReqBody, ResBody, D> Service<State, Request<ReqBody>> for RequestDecompression<S>
source§impl<S, State, ReqBody, ResBody, M, OnRequestT, OnResponseT, OnFailureT, OnBodyChunkT, OnEosT, MakeSpanT> Service<State, Request<ReqBody>> for Trace<S, M, MakeSpanT, OnRequestT, OnResponseT, OnBodyChunkT, OnEosT, OnFailureT>where
S: Service<State, Request<ReqBody>, Response = Response<ResBody>>,
State: Send + Sync + 'static,
ReqBody: HttpBody + Send + 'static,
ResBody: HttpBody + Send + Sync + 'static,
ResBody::Error: Display,
S::Error: Display,
M: MakeClassifier,
M::Classifier: Clone,
MakeSpanT: MakeSpan<ReqBody>,
OnRequestT: OnRequest<ReqBody>,
OnResponseT: OnResponse<ResBody> + Clone,
OnBodyChunkT: OnBodyChunk<ResBody::Data> + Clone,
OnEosT: OnEos + Clone,
OnFailureT: OnFailure<M::FailureClass> + Clone,
impl<S, State, ReqBody, ResBody, M, OnRequestT, OnResponseT, OnFailureT, OnBodyChunkT, OnEosT, MakeSpanT> Service<State, Request<ReqBody>> for Trace<S, M, MakeSpanT, OnRequestT, OnResponseT, OnBodyChunkT, OnEosT, OnFailureT>where
S: Service<State, Request<ReqBody>, Response = Response<ResBody>>,
State: Send + Sync + 'static,
ReqBody: HttpBody + Send + 'static,
ResBody: HttpBody + Send + Sync + 'static,
ResBody::Error: Display,
S::Error: Display,
M: MakeClassifier,
M::Classifier: Clone,
MakeSpanT: MakeSpan<ReqBody>,
OnRequestT: OnRequest<ReqBody>,
OnResponseT: OnResponse<ResBody> + Clone,
OnBodyChunkT: OnBodyChunk<ResBody::Data> + Clone,
OnEosT: OnEos + Clone,
OnFailureT: OnFailure<M::FailureClass> + Clone,
type Response = Response<ResponseBody<ResBody, <M as MakeClassifier>::ClassifyEos, OnBodyChunkT, OnEosT, OnFailureT>>
type Error = <S as Service<State, Request<ReqBody>>>::Error
source§impl<S, State, Request> Service<State, Request> for HttpProxyAddressService<S>
impl<S, State, Request> Service<State, Request> for HttpProxyAddressService<S>
source§impl<S, State, Request> Service<State, Request> for ConsumeErr<S, Trace>
impl<S, State, Request> Service<State, Request> for ConsumeErr<S, Trace>
source§impl<S, State, Request, T> Service<State, Request> for HttpsConnector<S, ConnectorKindAuto>
impl<S, State, Request, T> Service<State, Request> for HttpsConnector<S, ConnectorKindAuto>
this way we do not need a hacky macro… however is there a way to do this without needing to hacK?!?!