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§
fn 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§
§impl<S, State, Request> Service<State, Request> for &'static Swhere
S: Service<State, Request>,
impl<S, State, Request> Service<State, Request> for &'static Swhere
S: Service<State, Request>,
type Response = <S as Service<State, Request>>::Response
type Error = <S as Service<State, Request>>::Error
fn serve( &self, ctx: Context<State>, req: Request, ) -> impl Future<Output = Result<<&'static S as Service<State, Request>>::Response, <&'static S as Service<State, Request>>::Error>> + Send
§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, Request, Response, Error> Service<State, Request> 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: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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, Request, Response, Error> Service<State, Request> 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: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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,
type Response = Response
type Error = Error
async fn serve( &self, ctx: Context<State>, req: Request, ) -> Result<<((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) as Service<State, Request>>::Response, <((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) as Service<State, Request>>::Error>
§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, Request, Response, Error> Service<State, Request> 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: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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, Request, Response, Error> Service<State, Request> 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: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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,
type Response = Response
type Error = Error
async fn serve( &self, ctx: Context<State>, req: Request, ) -> Result<<((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) as Service<State, Request>>::Response, <((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) as Service<State, Request>>::Error>
§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, Request, Response, Error> Service<State, Request> 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: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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, Request, Response, Error> Service<State, Request> 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: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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,
type Response = Response
type Error = Error
async fn serve( &self, ctx: Context<State>, req: Request, ) -> Result<<((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) as Service<State, Request>>::Response, <((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) as Service<State, Request>>::Error>
§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, Request, Response, Error> Service<State, Request> 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: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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, Request, Response, Error> Service<State, Request> 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: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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,
type Response = Response
type Error = Error
async fn serve( &self, ctx: Context<State>, req: Request, ) -> Result<<((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) as Service<State, Request>>::Response, <((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) as Service<State, Request>>::Error>
§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, Request, Response, Error> Service<State, Request> 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: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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, Request, Response, Error> Service<State, Request> 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: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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,
type Response = Response
type Error = Error
async fn serve( &self, ctx: Context<State>, req: Request, ) -> Result<<((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) as Service<State, Request>>::Response, <((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) as Service<State, Request>>::Error>
§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, M_T7, T7, S, Request, Response, Error> Service<State, Request> 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: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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, Request, Response, Error> Service<State, Request> 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: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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,
type Response = Response
type Error = Error
async fn serve( &self, ctx: Context<State>, req: Request, ) -> Result<<((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), S) as Service<State, Request>>::Response, <((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), (M_T7, T7), S) as Service<State, Request>>::Error>
§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, M_T6, T6, S, Request, Response, Error> Service<State, Request> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), S)where
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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, Request, Response, Error> Service<State, Request> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), S)where
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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,
type Response = Response
type Error = Error
async fn serve( &self, ctx: Context<State>, req: Request, ) -> Result<<((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), S) as Service<State, Request>>::Response, <((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), (M_T6, T6), S) as Service<State, Request>>::Error>
§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, M_T5, T5, S, Request, Response, Error> Service<State, Request> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), S)where
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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, Request, Response, Error> Service<State, Request> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), S)where
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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,
type Response = Response
type Error = Error
async fn serve( &self, ctx: Context<State>, req: Request, ) -> Result<<((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), S) as Service<State, Request>>::Response, <((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), (M_T5, T5), S) as Service<State, Request>>::Error>
§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, M_T4, T4, S, Request, Response, Error> Service<State, Request> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), S)where
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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, Request, Response, Error> Service<State, Request> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), S)where
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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,
type Response = Response
type Error = Error
async fn serve( &self, ctx: Context<State>, req: Request, ) -> Result<<((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), S) as Service<State, Request>>::Response, <((M_T1, T1), (M_T2, T2), (M_T3, T3), (M_T4, T4), S) as Service<State, Request>>::Error>
§impl<State, M_T1, T1, M_T2, T2, M_T3, T3, S, Request, Response, Error> Service<State, Request> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), S)where
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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, Request, Response, Error> Service<State, Request> for ((M_T1, T1), (M_T2, T2), (M_T3, T3), S)where
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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,
type Response = Response
type Error = Error
async fn serve( &self, ctx: Context<State>, req: Request, ) -> Result<<((M_T1, T1), (M_T2, T2), (M_T3, T3), S) as Service<State, Request>>::Response, <((M_T1, T1), (M_T2, T2), (M_T3, T3), S) as Service<State, Request>>::Error>
§impl<State, M_T1, T1, M_T2, T2, S, Request, Response, Error> Service<State, Request> for ((M_T1, T1), (M_T2, T2), S)where
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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, Request, Response, Error> Service<State, Request> for ((M_T1, T1), (M_T2, T2), S)where
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + '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,
type Response = Response
type Error = Error
async fn serve( &self, ctx: Context<State>, req: Request, ) -> Result<<((M_T1, T1), (M_T2, T2), S) as Service<State, Request>>::Response, <((M_T1, T1), (M_T2, T2), S) as Service<State, Request>>::Error>
§impl<State, M_T1, T1, S, Request, Response, Error> Service<State, Request> for ((M_T1, T1), S)
impl<State, M_T1, T1, S, Request, Response, Error> Service<State, Request> for ((M_T1, T1), S)
Implementors§
§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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Service<State, Request, Response = Response>,
<D as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
E: Service<State, Request, Response = Response>,
<E as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
F: Service<State, Request, Response = Response>,
<F as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
G: Service<State, Request, Response = Response>,
<G as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
H: Service<State, Request, Response = Response>,
<H as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
I: Service<State, Request, Response = Response>,
<I as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Service<State, Request, Response = Response>,
<D as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
E: Service<State, Request, Response = Response>,
<E as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
F: Service<State, Request, Response = Response>,
<F as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
G: Service<State, Request, Response = Response>,
<G as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
H: Service<State, Request, Response = Response>,
<H as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
I: Service<State, Request, Response = Response>,
<I as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Service<State, Request, Response = Response>,
<D as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
E: Service<State, Request, Response = Response>,
<E as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
F: Service<State, Request, Response = Response>,
<F as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
G: Service<State, Request, Response = Response>,
<G as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
H: Service<State, Request, Response = Response>,
<H as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Service<State, Request, Response = Response>,
<D as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
E: Service<State, Request, Response = Response>,
<E as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
F: Service<State, Request, Response = Response>,
<F as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
G: Service<State, Request, Response = Response>,
<G as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
H: Service<State, Request, Response = Response>,
<H as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Service<State, Request, Response = Response>,
<D as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
E: Service<State, Request, Response = Response>,
<E as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
F: Service<State, Request, Response = Response>,
<F as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
G: Service<State, Request, Response = Response>,
<G as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Service<State, Request, Response = Response>,
<D as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
E: Service<State, Request, Response = Response>,
<E as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
F: Service<State, Request, Response = Response>,
<F as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
G: Service<State, Request, Response = Response>,
<G as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Service<State, Request, Response = Response>,
<D as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
E: Service<State, Request, Response = Response>,
<E as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
F: Service<State, Request, Response = Response>,
<F as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Service<State, Request, Response = Response>,
<D as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
E: Service<State, Request, Response = Response>,
<E as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
F: Service<State, Request, Response = Response>,
<F as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Service<State, Request, Response = Response>,
<D as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
E: Service<State, Request, Response = Response>,
<E as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Service<State, Request, Response = Response>,
<D as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
E: Service<State, Request, Response = Response>,
<E as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Service<State, Request, Response = Response>,
<D as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Service<State, Request, Response = Response>,
<D as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
C: Service<State, Request, Response = Response>,
<C as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + Send + Sync + 'static,
Response: Send + 'static,
§impl<A, B, State, Request, Response> Service<State, Request> for Either<A, B>where
A: Service<State, Request, Response = Response>,
<A as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + Send + Sync + 'static,
Response: Send + 'static,
impl<A, B, State, Request, Response> Service<State, Request> for Either<A, B>where
A: Service<State, Request, Response = Response>,
<A as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
B: Service<State, Request, Response = Response>,
<B as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
Request: Send + 'static,
State: Clone + Send + Sync + 'static,
Response: Send + 'static,
§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>
§impl<B, State, S, Response, IO> Service<State, IO> for HttpService<B, S>where
B: HyperConnServer,
State: Clone + Send + Sync + 'static,
S: Service<State, Request<Body>, Response = Response, Error = Infallible>,
Response: IntoResponse + Send + 'static,
IO: Stream,
impl<B, State, S, Response, IO> Service<State, IO> for HttpService<B, S>where
B: HyperConnServer,
State: Clone + Send + Sync + 'static,
S: Service<State, Request<Body>, Response = Response, Error = Infallible>,
Response: IntoResponse + Send + 'static,
IO: Stream,
§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>
§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>
§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
§impl<P, S, State, Body> Service<State, Request<Body>> for Retry<P, S>where
P: Policy<State, <S as Service<State, Request<RetryBody>>>::Response, <S as Service<State, Request<RetryBody>>>::Error>,
S: Service<State, Request<RetryBody>>,
<S as Service<State, Request<RetryBody>>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Body: Body + Send + 'static,
<Body as Body>::Data: Send + 'static,
<Body as Body>::Error: Into<Box<dyn Error + Sync + Send>>,
impl<P, S, State, Body> Service<State, Request<Body>> for Retry<P, S>where
P: Policy<State, <S as Service<State, Request<RetryBody>>>::Response, <S as Service<State, Request<RetryBody>>>::Error>,
S: Service<State, Request<RetryBody>>,
<S as Service<State, Request<RetryBody>>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Body: Body + Send + 'static,
<Body as Body>::Data: Send + 'static,
<Body as Body>::Error: Into<Box<dyn Error + Sync + Send>>,
§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>
§impl<ReqBody, ResBody, S, State> Service<State, Request<ReqBody>> for PropagateHeader<S>
impl<ReqBody, ResBody, S, State> Service<State, Request<ReqBody>> for PropagateHeader<S>
§impl<ReqBody, ResBody, S, State, Auth> Service<State, Request<ReqBody>> for AsyncRequireAuthorization<S, Auth>where
Auth: AsyncAuthorizeRequest<State, ReqBody, ResponseBody = ResBody> + Send + Sync + 'static,
S: Service<State, Request<<Auth as AsyncAuthorizeRequest<State, ReqBody>>::RequestBody>, Response = Response<ResBody>>,
ReqBody: Send + 'static,
ResBody: Send + 'static,
State: Clone + Send + Sync + 'static,
impl<ReqBody, ResBody, S, State, Auth> Service<State, Request<ReqBody>> for AsyncRequireAuthorization<S, Auth>where
Auth: AsyncAuthorizeRequest<State, ReqBody, ResponseBody = ResBody> + Send + Sync + 'static,
S: Service<State, Request<<Auth as AsyncAuthorizeRequest<State, ReqBody>>::RequestBody>, Response = Response<ResBody>>,
ReqBody: Send + 'static,
ResBody: Send + 'static,
State: Clone + Send + Sync + 'static,
type Response = Response<ResBody>
type Error = <S as Service<State, Request<<Auth as AsyncAuthorizeRequest<State, ReqBody>>::RequestBody>>>::Error
§impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for RemoveRequestHeader<S>
impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for RemoveRequestHeader<S>
§impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for RemoveResponseHeader<S>
impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for RemoveResponseHeader<S>
§impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for AddRequiredRequestHeaders<S>
impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for AddRequiredRequestHeaders<S>
§impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for AddRequiredResponseHeaders<S>
impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for AddRequiredResponseHeaders<S>
§impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for SetSensitiveRequestHeaders<S>
impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for SetSensitiveRequestHeaders<S>
§impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for SetSensitiveResponseHeaders<S>
impl<ReqBody, ResBody, State, S> Service<State, Request<ReqBody>> for SetSensitiveResponseHeaders<S>
§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>
§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>
§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>
§impl<S, D, P, F, State, Request> Service<State, Request> for ProxyDBService<S, D, P, F>where
S: Service<State, Request>,
<S as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
D: ProxyDB,
<D as ProxyDB>::Error: Into<Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
P: ProxyQueryPredicate,
F: UsernameFormatter<State>,
State: Clone + Send + Sync + 'static,
Request: TryRefIntoTransportContext<State> + Send + 'static,
<Request as TryRefIntoTransportContext<State>>::Error: Into<Box<dyn Error + Sync + Send>> + 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 as Service<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
D: ProxyDB,
<D as ProxyDB>::Error: Into<Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
P: ProxyQueryPredicate,
F: UsernameFormatter<State>,
State: Clone + Send + Sync + 'static,
Request: TryRefIntoTransportContext<State> + Send + 'static,
<Request as TryRefIntoTransportContext<State>>::Error: Into<Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
§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>
§impl<S, F, State, Body> Service<State, Request<Body>> for RequestMetricsService<S, F>
impl<S, F, State, Body> Service<State, Request<Body>> for RequestMetricsService<S, F>
§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>
§impl<S, F, State, Request> Service<State, Request> for ConsumeErr<S, F>
impl<S, F, State, Request> Service<State, Request> for ConsumeErr<S, F>
§impl<S, F, State, Request, R> Service<State, Request> for ConsumeErr<S, F, StaticResponse<R>>
impl<S, F, State, Request, R> Service<State, Request> for ConsumeErr<S, F, StaticResponse<R>>
§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>
§impl<S, F, State, Request, Response, Error> Service<State, Request> for MapResult<S, F>where
S: Service<State, Request>,
F: FnOnce(Result<<S as Service<State, Request>>::Response, <S as Service<State, Request>>::Error>) -> Result<Response, Error> + Clone + Send + Sync + 'static,
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + 'static,
Error: Send + Sync + 'static,
impl<S, F, State, Request, Response, Error> Service<State, Request> for MapResult<S, F>where
S: Service<State, Request>,
F: FnOnce(Result<<S as Service<State, Request>>::Response, <S as Service<State, Request>>::Error>) -> Result<Response, Error> + Clone + Send + Sync + 'static,
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
Response: Send + 'static,
Error: Send + Sync + 'static,
§impl<S, F, State, Stream> Service<State, Stream> for NetworkMetricsService<S, F>
impl<S, F, State, Stream> Service<State, Stream> for NetworkMetricsService<S, F>
§impl<S, H, M, State, Request> Service<State, Request> for HijackService<S, H, M>where
S: Service<State, Request>,
H: Service<State, Request>,
<H as Service<State, Request>>::Response: Into<<S as Service<State, Request>>::Response>,
<H as Service<State, Request>>::Error: Into<<S as Service<State, Request>>::Error>,
M: Matcher<State, Request>,
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
impl<S, H, M, State, Request> Service<State, Request> for HijackService<S, H, M>where
S: Service<State, Request>,
H: Service<State, Request>,
<H as Service<State, Request>>::Response: Into<<S as Service<State, Request>>::Response>,
<H as Service<State, Request>>::Error: Into<<S as Service<State, Request>>::Error>,
M: Matcher<State, Request>,
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
§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>
§impl<S, P, State, Request> Service<State, Request> for rama::proxy::haproxy::client::HaProxyService<S, P, One>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
P: Send + 'static,
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
impl<S, P, State, Request> Service<State, Request> for rama::proxy::haproxy::client::HaProxyService<S, P, One>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
P: Send + 'static,
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
type Response = EstablishedClientConnection<<S as ConnectorService<State, Request>>::Connection, State, Request>
type Error = Box<dyn Error + Sync + Send>
§impl<S, P, State, Request, T> Service<State, Request> for rama::proxy::haproxy::client::HaProxyService<S, P>
impl<S, P, State, Request, T> Service<State, Request> for rama::proxy::haproxy::client::HaProxyService<S, P>
§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>
§impl<S, State, Body> Service<State, Request<Body>> for SetProxyAuthHttpHeaderService<S>
impl<S, State, Body> Service<State, Request<Body>> for SetProxyAuthHttpHeaderService<S>
§impl<S, State, Body> Service<State, Request<Body>> for HttpConnector<S>where
S: ConnectorService<State, Request<Body>>,
<S as ConnectorService<State, Request<Body>>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request<Body>>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Body: Body + Unpin + Send + 'static,
<Body as Body>::Data: Send + 'static,
<Body as Body>::Error: Into<Box<dyn Error + Sync + Send>>,
impl<S, State, Body> Service<State, Request<Body>> for HttpConnector<S>where
S: ConnectorService<State, Request<Body>>,
<S as ConnectorService<State, Request<Body>>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request<Body>>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Body: Body + Unpin + Send + 'static,
<Body as Body>::Data: Send + 'static,
<Body as Body>::Error: Into<Box<dyn Error + Sync + Send>>,
§impl<S, State, Body> Service<State, Request<Body>> for ErrorHandler<S>
impl<S, State, Body> Service<State, Request<Body>> for ErrorHandler<S>
§impl<S, State, Body> Service<State, Request<Body>> for UserAgentClassifier<S>
impl<S, State, Body> Service<State, Request<Body>> for UserAgentClassifier<S>
§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>
§impl<S, State, O, E> Service<State, Request<Body>> for UpgradeService<S, State, O>
impl<S, State, O, E> Service<State, Request<Body>> for UpgradeService<S, State, O>
§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>
§impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for AddAuthorization<S>
impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for AddAuthorization<S>
§impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for CollectBody<S>where
S: Service<State, Request<ReqBody>, Response = Response<ResBody>>,
<S as Service<State, Request<ReqBody>>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
ReqBody: Send + 'static,
ResBody: Body + Send + Sync + 'static,
<ResBody as Body>::Data: Send,
<ResBody as Body>::Error: Error + Send + Sync + 'static,
impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for CollectBody<S>where
S: Service<State, Request<ReqBody>, Response = Response<ResBody>>,
<S as Service<State, Request<ReqBody>>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
ReqBody: Send + 'static,
ResBody: Body + Send + Sync + 'static,
<ResBody as Body>::Data: Send,
<ResBody as Body>::Error: Error + Send + Sync + 'static,
§impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for Decompression<S>
impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for Decompression<S>
§impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for NormalizePath<S>
impl<S, State, ReqBody, ResBody> Service<State, Request<ReqBody>> for NormalizePath<S>
§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>
§impl<S, State, ReqBody, ResBody, D> Service<State, Request<ReqBody>> for RequestDecompression<S>where
S: Service<State, Request<DecompressionBody<ReqBody>>, Response = Response<ResBody>>,
<S as Service<State, Request<DecompressionBody<ReqBody>>>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
ReqBody: Body + Send + 'static,
ResBody: Body<Data = D> + Send + 'static,
<ResBody as Body>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Buf + 'static,
impl<S, State, ReqBody, ResBody, D> Service<State, Request<ReqBody>> for RequestDecompression<S>where
S: Service<State, Request<DecompressionBody<ReqBody>>, Response = Response<ResBody>>,
<S as Service<State, Request<DecompressionBody<ReqBody>>>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
ReqBody: Body + Send + 'static,
ResBody: Body<Data = D> + Send + 'static,
<ResBody as Body>::Error: Into<Box<dyn Error + Sync + Send>>,
D: Buf + 'static,
§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>>,
<S as Service<State, Request<ReqBody>>>::Error: Display,
State: Clone + Send + Sync + 'static,
ReqBody: Body + Send + 'static,
ResBody: Body + Send + Sync + 'static,
<ResBody as Body>::Error: Display,
M: MakeClassifier,
<M as MakeClassifier>::Classifier: Clone,
MakeSpanT: MakeSpan<ReqBody>,
OnRequestT: OnRequest<ReqBody>,
OnResponseT: OnResponse<ResBody> + Clone,
OnBodyChunkT: OnBodyChunk<<ResBody as Body>::Data> + Clone,
OnEosT: OnEos + Clone,
OnFailureT: OnFailure<<M as MakeClassifier>::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>>,
<S as Service<State, Request<ReqBody>>>::Error: Display,
State: Clone + Send + Sync + 'static,
ReqBody: Body + Send + 'static,
ResBody: Body + Send + Sync + 'static,
<ResBody as Body>::Error: Display,
M: MakeClassifier,
<M as MakeClassifier>::Classifier: Clone,
MakeSpanT: MakeSpan<ReqBody>,
OnRequestT: OnRequest<ReqBody>,
OnResponseT: OnResponse<ResBody> + Clone,
OnBodyChunkT: OnBodyChunk<<ResBody as Body>::Data> + Clone,
OnEosT: OnEos + Clone,
OnFailureT: OnFailure<<M as MakeClassifier>::FailureClass> + Clone,
type Response = Response<ResponseBody<ResBody, <M as MakeClassifier>::ClassifyEos, OnBodyChunkT, OnEosT, OnFailureT>>
type Error = <S as Service<State, Request<ReqBody>>>::Error
§impl<S, State, Request> Service<State, Request> for HttpProxyAddressService<S>
impl<S, State, Request> Service<State, Request> for HttpProxyAddressService<S>
§impl<S, State, Request> Service<State, Request> for HttpProxyConnector<S>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Request: TryRefIntoTransportContext<State> + Send + 'static,
<Request as TryRefIntoTransportContext<State>>::Error: Into<Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
impl<S, State, Request> Service<State, Request> for HttpProxyConnector<S>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Request: TryRefIntoTransportContext<State> + Send + 'static,
<Request as TryRefIntoTransportContext<State>>::Error: Into<Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
type Response = EstablishedClientConnection<<S as ConnectorService<State, Request>>::Connection, State, Request>
type Error = Box<dyn Error + Sync + Send>
§impl<S, State, Request> Service<State, Request> for ConsumeErr<S, Trace>
impl<S, State, Request> Service<State, Request> for ConsumeErr<S, Trace>
§impl<S, State, Request> Service<State, Request> for OutgoingBytesTrackerService<S>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Send + Sync + 'static,
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
impl<S, State, Request> Service<State, Request> for OutgoingBytesTrackerService<S>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Send + Sync + 'static,
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
type Response = EstablishedClientConnection<BytesRWTracker<<S as ConnectorService<State, Request>>::Connection>, State, Request>
type Error = <S as ConnectorService<State, Request>>::Error
§impl<S, State, Request> Service<State, Request> for rama::tls::boring::client::TlsConnector<S>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Request: TryRefIntoTransportContext<State> + Send + 'static,
<Request as TryRefIntoTransportContext<State>>::Error: Into<Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
impl<S, State, Request> Service<State, Request> for rama::tls::boring::client::TlsConnector<S>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Request: TryRefIntoTransportContext<State> + Send + 'static,
<Request as TryRefIntoTransportContext<State>>::Error: Into<Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
this way we do not need a hacky macro… however is there a way to do this without needing to hacK?!?!
type Response = EstablishedClientConnection<AutoTlsStream<<S as ConnectorService<State, Request>>::Connection>, State, Request>
type Error = Box<dyn Error + Sync + Send>
§impl<S, State, Request> Service<State, Request> for rama::tls::boring::client::TlsConnector<S, ConnectorKindSecure>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Request: TryRefIntoTransportContext<State> + Send + 'static,
<Request as TryRefIntoTransportContext<State>>::Error: Into<Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
impl<S, State, Request> Service<State, Request> for rama::tls::boring::client::TlsConnector<S, ConnectorKindSecure>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Request: TryRefIntoTransportContext<State> + Send + 'static,
<Request as TryRefIntoTransportContext<State>>::Error: Into<Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
type Response = EstablishedClientConnection<SslStream<<S as ConnectorService<State, Request>>::Connection>, State, Request>
type Error = Box<dyn Error + Sync + Send>
§impl<S, State, Request> Service<State, Request> for rama::tls::boring::client::TlsConnector<S, ConnectorKindTunnel>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
impl<S, State, Request> Service<State, Request> for rama::tls::boring::client::TlsConnector<S, ConnectorKindTunnel>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Request: Send + 'static,
type Response = EstablishedClientConnection<AutoTlsStream<<S as ConnectorService<State, Request>>::Connection>, State, Request>
type Error = Box<dyn Error + Sync + Send>
§impl<S, State, Request> Service<State, Request> for rama::tls::rustls::client::TlsConnector<S>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Request: TryRefIntoTransportContext<State> + Send + 'static,
<Request as TryRefIntoTransportContext<State>>::Error: Into<Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
impl<S, State, Request> Service<State, Request> for rama::tls::rustls::client::TlsConnector<S>where
S: ConnectorService<State, Request>,
<S as ConnectorService<State, Request>>::Connection: Stream + Unpin,
<S as ConnectorService<State, Request>>::Error: Into<Box<dyn Error + Sync + Send>>,
State: Clone + Send + Sync + 'static,
Request: TryRefIntoTransportContext<State> + Send + 'static,
<Request as TryRefIntoTransportContext<State>>::Error: Into<Box<dyn Error + Sync + Send>> + Send + Sync + 'static,
this way we do not need a hacky macro… however is there a way to do this without needing to hacK?!?!