pub trait Service<Request> {
type Response;
type Error;
type Future: Future<Output = Result<Self::Response, Self::Error>>;
// Required methods
fn poll_ready(
&mut self,
cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>>;
fn call(&mut self, req: Request) -> Self::Future;
}
Expand description
An asynchronous function from a Request
to a Response
.
The Service
trait is a simplified interface making it easy to write
network applications in a modular and reusable way, decoupled from the
underlying protocol. It is one of Tower’s fundamental abstractions.
§Functional
A Service
is a function of a Request
. It immediately returns a
Future
representing the eventual completion of processing the
request. The actual request processing may happen at any time in the
future, on any thread or executor. The processing may depend on calling
other services. At some point in the future, the processing will complete,
and the Future
will resolve to a response or error.
At a high level, the Service::call
function represents an RPC request. The
Service
value can be a server or a client.
§Server
An RPC server implements the Service
trait. Requests received by the
server over the network are deserialized and then passed as an argument to the
server value. The returned response is sent back over the network.
As an example, here is how an HTTP request is processed by a server:
use http::{Request, Response, StatusCode};
struct HelloWorld;
impl Service<Request<Vec<u8>>> for HelloWorld {
type Response = Response<Vec<u8>>;
type Error = http::Error;
type Future = Pin<Box<dyn Future<Output = Result<Self::Response, Self::Error>>>>;
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
Poll::Ready(Ok(()))
}
fn call(&mut self, req: Request<Vec<u8>>) -> Self::Future {
// create the body
let body: Vec<u8> = "hello, world!\n"
.as_bytes()
.to_owned();
// Create the HTTP response
let resp = Response::builder()
.status(StatusCode::OK)
.body(body)
.expect("Unable to create `http::Response`");
// create a response in a future.
let fut = async {
Ok(resp)
};
// Return the response as an immediate future
Box::pin(fut)
}
}
§Client
A client consumes a service by using a Service
value. The client may
issue requests by invoking call
and passing the request as an argument.
It then receives the response by waiting for the returned future.
As an example, here is how a Redis request would be issued:
let client = redis::Client::new()
.connect("127.0.0.1:6379".parse().unwrap())
.unwrap();
let resp = client.call(Cmd::set("foo", "this is the value of foo")).await?;
// Wait for the future to resolve
println!("Redis response: {:?}", resp);
§Middleware / Layer
More often than not, all the pieces needed for writing robust, scalable network applications are the same no matter the underlying protocol. By unifying the API for both clients and servers in a protocol agnostic way, it is possible to write middleware that provide these pieces in a reusable way.
Take timeouts as an example:
use tower_service::Service;
use tower_layer::Layer;
use futures::FutureExt;
use std::future::Future;
use std::task::{Context, Poll};
use std::time::Duration;
use std::pin::Pin;
use std::fmt;
use std::error::Error;
// Our timeout service, which wraps another service and
// adds a timeout to its response future.
pub struct Timeout<T> {
inner: T,
timeout: Duration,
}
impl<T> Timeout<T> {
pub const fn new(inner: T, timeout: Duration) -> Timeout<T> {
Timeout {
inner,
timeout
}
}
}
// The error returned if processing a request timed out
#[derive(Debug)]
pub struct Expired;
impl fmt::Display for Expired {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "expired")
}
}
impl Error for Expired {}
// We can implement `Service` for `Timeout<T>` if `T` is a `Service`
impl<T, Request> Service<Request> for Timeout<T>
where
T: Service<Request>,
T::Future: 'static,
T::Error: Into<Box<dyn Error + Send + Sync>> + 'static,
T::Response: 'static,
{
// `Timeout` doesn't modify the response type, so we use `T`'s response type
type Response = T::Response;
// Errors may be either `Expired` if the timeout expired, or the inner service's
// `Error` type. Therefore, we return a boxed `dyn Error + Send + Sync` trait object to erase
// the error's type.
type Error = Box<dyn Error + Send + Sync>;
type Future = Pin<Box<dyn Future<Output = Result<Self::Response, Self::Error>>>>;
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
// Our timeout service is ready if the inner service is ready.
// This is how backpressure can be propagated through a tree of nested services.
self.inner.poll_ready(cx).map_err(Into::into)
}
fn call(&mut self, req: Request) -> Self::Future {
// Create a future that completes after `self.timeout`
let timeout = tokio::time::sleep(self.timeout);
// Call the inner service and get a future that resolves to the response
let fut = self.inner.call(req);
// Wrap those two futures in another future that completes when either one completes
//
// If the inner service is too slow the `sleep` future will complete first
// And an error will be returned and `fut` will be dropped and not polled again
//
// We have to box the errors so the types match
let f = async move {
tokio::select! {
res = fut => {
res.map_err(|err| err.into())
},
_ = timeout => {
Err(Box::new(Expired) as Box<dyn Error + Send + Sync>)
},
}
};
Box::pin(f)
}
}
// A layer for wrapping services in `Timeout`
pub struct TimeoutLayer(Duration);
impl TimeoutLayer {
pub const fn new(delay: Duration) -> Self {
TimeoutLayer(delay)
}
}
impl<S> Layer<S> for TimeoutLayer {
type Service = Timeout<S>;
fn layer(&self, service: S) -> Timeout<S> {
Timeout::new(service, self.0)
}
}
The above timeout implementation is decoupled from the underlying protocol and is also decoupled from client or server concerns. In other words, the same timeout middleware could be used in either a client or a server.
§Backpressure
Calling a Service
which is at capacity (i.e., it is temporarily unable to process a
request) should result in an error. The caller is responsible for ensuring
that the service is ready to receive the request before calling it.
Service
provides a mechanism by which the caller is able to coordinate
readiness. Service::poll_ready
returns Ready
if the service expects that
it is able to process a request.
§Be careful when cloning inner services
Services are permitted to panic if call
is invoked without obtaining Poll::Ready(Ok(()))
from poll_ready
. You should therefore be careful when cloning services for example to move
them into boxed futures. Even though the original service is ready, the clone might not be.
Therefore this kind of code is wrong and might panic:
struct Wrapper<S> {
inner: S,
}
impl<R, S> Service<R> for Wrapper<S>
where
S: Service<R> + Clone + 'static,
R: 'static,
{
type Response = S::Response;
type Error = S::Error;
type Future = Pin<Box<dyn Future<Output = Result<Self::Response, Self::Error>>>>;
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
self.inner.poll_ready(cx)
}
fn call(&mut self, req: R) -> Self::Future {
let mut inner = self.inner.clone();
Box::pin(async move {
// `inner` might not be ready since its a clone
inner.call(req).await
})
}
}
You should instead use std::mem::replace
to take the service that was ready:
struct Wrapper<S> {
inner: S,
}
impl<R, S> Service<R> for Wrapper<S>
where
S: Service<R> + Clone + 'static,
R: 'static,
{
type Response = S::Response;
type Error = S::Error;
type Future = Pin<Box<dyn Future<Output = Result<Self::Response, Self::Error>>>>;
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>> {
self.inner.poll_ready(cx)
}
fn call(&mut self, req: R) -> Self::Future {
let clone = self.inner.clone();
// take the service that was ready
let mut inner = std::mem::replace(&mut self.inner, clone);
Box::pin(async move {
inner.call(req).await
})
}
}
Required Associated Types§
Required Methods§
Sourcefn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>
fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>
Returns Poll::Ready(Ok(()))
when the service is able to process requests.
If the service is at capacity, then Poll::Pending
is returned and the task
is notified when the service becomes ready again. This function is
expected to be called while on a task. Generally, this can be done with
a simple futures::future::poll_fn
call.
If Poll::Ready(Err(_))
is returned, the service is no longer able to service requests
and the caller should discard the service instance.
Once poll_ready
returns Poll::Ready(Ok(()))
, a request may be dispatched to the
service using call
. Until a request is dispatched, repeated calls to
poll_ready
must return either Poll::Ready(Ok(()))
or Poll::Ready(Err(_))
.
Note that poll_ready
may reserve shared resources that are consumed in a subsequent
invocation of call
. Thus, it is critical for implementations to not assume that call
will always be invoked and to ensure that such resources are released if the service is
dropped before call
is invoked or the future returned by call
is dropped before it
is polled.
Sourcefn call(&mut self, req: Request) -> Self::Future
fn call(&mut self, req: Request) -> Self::Future
Process the request and return the response asynchronously.
This function is expected to be callable off task. As such,
implementations should take care to not call poll_ready
.
Before dispatching a request, poll_ready
must be called and return
Poll::Ready(Ok(()))
.
§Panics
Implementations are permitted to panic if call
is invoked without
obtaining Poll::Ready(Ok(()))
from poll_ready
.
Implementations on Foreign Types§
Source§impl Service<IncomingStream<'_>> for MethodRouter
impl Service<IncomingStream<'_>> for MethodRouter
type Response = MethodRouter
type Error = Infallible
type Future = Ready<Result<<MethodRouter as Service<IncomingStream<'_>>>::Response, <MethodRouter as Service<IncomingStream<'_>>>::Error>>
fn poll_ready( &mut self, _cx: &mut Context<'_>, ) -> Poll<Result<(), <MethodRouter as Service<IncomingStream<'_>>>::Error>>
fn call( &mut self, _req: IncomingStream<'_>, ) -> <MethodRouter as Service<IncomingStream<'_>>>::Future
Source§impl Service<IncomingStream<'_>> for Router
impl Service<IncomingStream<'_>> for Router
type Response = Router
type Error = Infallible
type Future = Ready<Result<<Router as Service<IncomingStream<'_>>>::Response, <Router as Service<IncomingStream<'_>>>::Error>>
fn poll_ready( &mut self, _cx: &mut Context<'_>, ) -> Poll<Result<(), <Router as Service<IncomingStream<'_>>>::Error>>
fn call( &mut self, _req: IncomingStream<'_>, ) -> <Router as Service<IncomingStream<'_>>>::Future
Source§impl Service<Request<Body>> for Next
impl Service<Request<Body>> for Next
type Response = Response<Body>
type Error = Infallible
type Future = Pin<Box<dyn Future<Output = Result<<Next as Service<Request<Body>>>::Response, <Next as Service<Request<Body>>>::Error>> + Send>>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <Next as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <Next as Service<Request<Body>>>::Future
Source§impl<'a, S, Request> Service<Request> for &'a mut Swhere
S: Service<Request> + 'a,
impl<'a, S, Request> Service<Request> for &'a mut Swhere
S: Service<Request> + 'a,
type Response = <S as Service<Request>>::Response
type Error = <S as Service<Request>>::Error
type Future = <S as Service<Request>>::Future
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <S as Service<Request>>::Error>>
fn call(&mut self, request: Request) -> <S as Service<Request>>::Future
Source§impl<A, B, Request> Service<Request> for Either<A, B>
impl<A, B, Request> Service<Request> for Either<A, B>
type Response = <A as Service<Request>>::Response
type Error = <A as Service<Request>>::Error
type Future = EitherResponseFuture<<A as Service<Request>>::Future, <B as Service<Request>>::Future>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <Either<A, B> as Service<Request>>::Error>>
fn call( &mut self, request: Request, ) -> <Either<A, B> as Service<Request>>::Future
Source§impl<B> Service<Request<B>> for Router
impl<B> Service<Request<B>> for Router
type Response = Response<Body>
type Error = Infallible
type Future = RouteFuture<Infallible>
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <Router as Service<Request<B>>>::Error>>
fn call(&mut self, req: Request<B>) -> <Router as Service<Request<B>>>::Future
Source§impl<B> Service<Request<B>> for RouterAsService<'_, B>
impl<B> Service<Request<B>> for RouterAsService<'_, B>
type Response = Response<Body>
type Error = Infallible
type Future = RouteFuture<Infallible>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <RouterAsService<'_, B> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <RouterAsService<'_, B> as Service<Request<B>>>::Future
Source§impl<B> Service<Request<B>> for RouterIntoService<B>
impl<B> Service<Request<B>> for RouterIntoService<B>
type Response = Response<Body>
type Error = Infallible
type Future = RouteFuture<Infallible>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <RouterIntoService<B> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <RouterIntoService<B> as Service<Request<B>>>::Future
Source§impl<B, E> Service<Request<B>> for MethodRouter<(), E>
impl<B, E> Service<Request<B>> for MethodRouter<(), E>
type Response = Response<Body>
type Error = E
type Future = RouteFuture<E>
fn poll_ready( &mut self, _cx: &mut Context<'_>, ) -> Poll<Result<(), <MethodRouter<(), E> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MethodRouter<(), E> as Service<Request<B>>>::Future
Source§impl<F, Fut, Out, S, I, T1> Service<Request<Body>> for FromFn<F, S, I, (T1,)>where
F: FnMut(T1, Next) -> Fut + Clone + Send + 'static,
T1: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1> Service<Request<Body>> for FromFn<F, S, I, (T1,)>where
F: FnMut(T1, Next) -> Fut + Clone + Send + 'static,
T1: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1,)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1,)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2> Service<Request<Body>> for FromFn<F, S, I, (T1, T2)>where
F: FnMut(T1, T2, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2> Service<Request<Body>> for FromFn<F, S, I, (T1, T2)>where
F: FnMut(T1, T2, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3)>where
F: FnMut(T1, T2, T3, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3)>where
F: FnMut(T1, T2, T3, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3, T4> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4)>where
F: FnMut(T1, T2, T3, T4, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3, T4> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4)>where
F: FnMut(T1, T2, T3, T4, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3, T4)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3, T4)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5)>where
F: FnMut(T1, T2, T3, T4, T5, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5)>where
F: FnMut(T1, T2, T3, T4, T5, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3, T4, T5)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3, T4, T5)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6)>where
F: FnMut(T1, T2, T3, T4, T5, T6, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6)>where
F: FnMut(T1, T2, T3, T4, T5, T6, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequestParts<S> + Send,
T16: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Service<Request<Body>> for FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, Next) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequestParts<S> + Send,
T16: FromRequest<S> + Send,
Fut: Future<Output = Out> + Send + 'static,
Out: IntoResponse + 'static,
I: Service<Request<Body>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<Body>>>::Response: IntoResponse,
<I as Service<Request<Body>>>::Future: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> as Service<Request<Body>>>::Error>>
fn call( &mut self, req: Request<Body>, ) -> <FromFn<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> as Service<Request<Body>>>::Future
Source§impl<F, Fut, S, I, B, ResBody> Service<Request<B>> for MapResponse<F, S, I, ()>where
F: FnMut(Response<ResBody>) -> Fut + Clone + Send + 'static,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody> Service<Request<B>> for MapResponse<F, S, I, ()>where
F: FnMut(Response<ResBody>) -> Fut + Clone + Send + 'static,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, ()> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, ()> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1> Service<Request<B>> for MapResponse<F, S, I, (T1,)>where
F: FnMut(T1, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1> Service<Request<B>> for MapResponse<F, S, I, (T1,)>where
F: FnMut(T1, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1,)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1,)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2> Service<Request<B>> for MapResponse<F, S, I, (T1, T2)>where
F: FnMut(T1, T2, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2> Service<Request<B>> for MapResponse<F, S, I, (T1, T2)>where
F: FnMut(T1, T2, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3)>where
F: FnMut(T1, T2, T3, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3)>where
F: FnMut(T1, T2, T3, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4)>where
F: FnMut(T1, T2, T3, T4, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4)>where
F: FnMut(T1, T2, T3, T4, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3, T4)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3, T4)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5)>where
F: FnMut(T1, T2, T3, T4, T5, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5)>where
F: FnMut(T1, T2, T3, T4, T5, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3, T4, T5)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3, T4, T5)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6)>where
F: FnMut(T1, T2, T3, T4, T5, T6, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6)>where
F: FnMut(T1, T2, T3, T4, T5, T6, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequestParts<S> + Send,
T16: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Service<Request<B>> for MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, Response<ResBody>) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequestParts<S> + Send,
T16: FromRequestParts<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoResponse + Send + 'static,
I: Service<Request<B>, Response = Response<ResBody>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Send + 'static,
ResBody: Send + 'static,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapResponse<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1> Service<Request<B>> for MapRequest<F, S, I, (T1,)>where
F: FnMut(T1) -> Fut + Clone + Send + 'static,
T1: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1> Service<Request<B>> for MapRequest<F, S, I, (T1,)>where
F: FnMut(T1) -> Fut + Clone + Send + 'static,
T1: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1,)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1,)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2> Service<Request<B>> for MapRequest<F, S, I, (T1, T2)>where
F: FnMut(T1, T2) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2> Service<Request<B>> for MapRequest<F, S, I, (T1, T2)>where
F: FnMut(T1, T2) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3)>where
F: FnMut(T1, T2, T3) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3)>where
F: FnMut(T1, T2, T3) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3, T4> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4)>where
F: FnMut(T1, T2, T3, T4) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3, T4> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4)>where
F: FnMut(T1, T2, T3, T4) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3, T4)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3, T4)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3, T4, T5> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5)>where
F: FnMut(T1, T2, T3, T4, T5) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3, T4, T5> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5)>where
F: FnMut(T1, T2, T3, T4, T5) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3, T4, T5)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3, T4, T5)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6)>where
F: FnMut(T1, T2, T3, T4, T5, T6) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6)>where
F: FnMut(T1, T2, T3, T4, T5, T6) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> as Service<Request<B>>>::Future
Source§impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequestParts<S> + Send,
T16: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Service<Request<B>> for MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)>where
F: FnMut(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> Fut + Clone + Send + 'static,
T1: FromRequestParts<S> + Send,
T2: FromRequestParts<S> + Send,
T3: FromRequestParts<S> + Send,
T4: FromRequestParts<S> + Send,
T5: FromRequestParts<S> + Send,
T6: FromRequestParts<S> + Send,
T7: FromRequestParts<S> + Send,
T8: FromRequestParts<S> + Send,
T9: FromRequestParts<S> + Send,
T10: FromRequestParts<S> + Send,
T11: FromRequestParts<S> + Send,
T12: FromRequestParts<S> + Send,
T13: FromRequestParts<S> + Send,
T14: FromRequestParts<S> + Send,
T15: FromRequestParts<S> + Send,
T16: FromRequest<S> + Send,
Fut: Future + Send + 'static,
<Fut as Future>::Output: IntoMapRequestResult<B> + Send + 'static,
I: Service<Request<B>, Error = Infallible> + Clone + Send + 'static,
<I as Service<Request<B>>>::Response: IntoResponse,
<I as Service<Request<B>>>::Future: Send + 'static,
B: Body<Data = Bytes> + Send + 'static,
<B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
S: Clone + Send + Sync + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = ResponseFuture
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <MapRequest<F, S, I, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> as Service<Request<B>>>::Future
Source§impl<F, S, R, E> Service<R> for FutureService<F, S>
impl<F, S, R, E> Service<R> for FutureService<F, S>
type Response = <S as Service<R>>::Response
type Error = E
type Future = <S as Service<R>>::Future
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FutureService<F, S> as Service<R>>::Error>>
fn call(&mut self, req: R) -> <FutureService<F, S> as Service<R>>::Future
Source§impl<H, T, S> Service<IncomingStream<'_>> for HandlerService<H, T, S>
impl<H, T, S> Service<IncomingStream<'_>> for HandlerService<H, T, S>
type Response = HandlerService<H, T, S>
type Error = Infallible
type Future = Ready<Result<<HandlerService<H, T, S> as Service<IncomingStream<'_>>>::Response, <HandlerService<H, T, S> as Service<IncomingStream<'_>>>::Error>>
fn poll_ready( &mut self, _cx: &mut Context<'_>, ) -> Poll<Result<(), <HandlerService<H, T, S> as Service<IncomingStream<'_>>>::Error>>
fn call( &mut self, _req: IncomingStream<'_>, ) -> <HandlerService<H, T, S> as Service<IncomingStream<'_>>>::Future
Source§impl<H, T, S, B> Service<Request<B>> for HandlerService<H, T, S>
impl<H, T, S, B> Service<Request<B>> for HandlerService<H, T, S>
type Response = Response<Body>
type Error = Infallible
type Future = IntoServiceFuture<<H as Handler<T, S>>::Future>
fn poll_ready( &mut self, _cx: &mut Context<'_>, ) -> Poll<Result<(), <HandlerService<H, T, S> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandlerService<H, T, S> as Service<Request<B>>>::Future
Source§impl<M, S, Target, Request> Service<Target> for AsService<'_, M, Request>
impl<M, S, Target, Request> Service<Target> for AsService<'_, M, Request>
type Response = <M as Service<Target>>::Response
type Error = <M as Service<Target>>::Error
type Future = <M as Service<Target>>::Future
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <AsService<'_, M, Request> as Service<Target>>::Error>>
fn call( &mut self, target: Target, ) -> <AsService<'_, M, Request> as Service<Target>>::Future
Source§impl<M, S, Target, Request> Service<Target> for IntoService<M, Request>
impl<M, S, Target, Request> Service<Target> for IntoService<M, Request>
type Response = <M as Service<Target>>::Response
type Error = <M as Service<Target>>::Error
type Future = <M as Service<Target>>::Future
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <IntoService<M, Request> as Service<Target>>::Error>>
fn call( &mut self, target: Target, ) -> <IntoService<M, Request> as Service<Target>>::Future
Source§impl<ReqBody, ResBody, S, M> Service<Request<ReqBody>> for SetRequestHeader<S, M>where
S: Service<Request<ReqBody>, Response = Response<ResBody>>,
M: MakeHeaderValue<Request<ReqBody>>,
impl<ReqBody, ResBody, S, M> Service<Request<ReqBody>> for SetRequestHeader<S, M>where
S: Service<Request<ReqBody>, Response = Response<ResBody>>,
M: MakeHeaderValue<Request<ReqBody>>,
type Response = <S as Service<Request<ReqBody>>>::Response
type Error = <S as Service<Request<ReqBody>>>::Error
type Future = <S as Service<Request<ReqBody>>>::Future
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <SetRequestHeader<S, M> as Service<Request<ReqBody>>>::Error>>
fn call( &mut self, req: Request<ReqBody>, ) -> <SetRequestHeader<S, M> as Service<Request<ReqBody>>>::Future
Source§impl<ReqBody, ResBody, S, M> Service<Request<ReqBody>> for SetResponseHeader<S, M>
impl<ReqBody, ResBody, S, M> Service<Request<ReqBody>> for SetResponseHeader<S, M>
type Response = <S as Service<Request<ReqBody>>>::Response
type Error = <S as Service<Request<ReqBody>>>::Error
type Future = ResponseFuture<<S as Service<Request<ReqBody>>>::Future, M>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <SetResponseHeader<S, M> as Service<Request<ReqBody>>>::Error>>
fn call( &mut self, req: Request<ReqBody>, ) -> <SetResponseHeader<S, M> as Service<Request<ReqBody>>>::Future
Source§impl<ReqBody, ResBody, S, P> Service<Request<ReqBody>> for FollowRedirect<S, P>
impl<ReqBody, ResBody, S, P> Service<Request<ReqBody>> for FollowRedirect<S, P>
type Response = Response<ResBody>
type Error = <S as Service<Request<ReqBody>>>::Error
type Future = ResponseFuture<S, ReqBody, P>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FollowRedirect<S, P> as Service<Request<ReqBody>>>::Error>>
fn call( &mut self, req: Request<ReqBody>, ) -> <FollowRedirect<S, P> as Service<Request<ReqBody>>>::Future
Source§impl<ResBody, S, T> Service<Request<ResBody>> for AddExtension<S, T>
impl<ResBody, S, T> Service<Request<ResBody>> for AddExtension<S, T>
type Response = <S as Service<Request<ResBody>>>::Response
type Error = <S as Service<Request<ResBody>>>::Error
type Future = <S as Service<Request<ResBody>>>::Future
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <AddExtension<S, T> as Service<Request<ResBody>>>::Error>>
fn call( &mut self, req: Request<ResBody>, ) -> <AddExtension<S, T> as Service<Request<ResBody>>>::Future
Source§impl<S, C, T> Service<T> for IntoMakeServiceWithConnectInfo<S, C>
impl<S, C, T> Service<T> for IntoMakeServiceWithConnectInfo<S, C>
type Response = AddExtension<S, ConnectInfo<C>>
type Error = Infallible
type Future = ResponseFuture<S, C>
fn poll_ready( &mut self, _cx: &mut Context<'_>, ) -> Poll<Result<(), <IntoMakeServiceWithConnectInfo<S, C> as Service<T>>::Error>>
fn call( &mut self, target: T, ) -> <IntoMakeServiceWithConnectInfo<S, C> as Service<T>>::Future
Source§impl<S, F, B, Fut, Res> Service<Request<B>> for HandleError<S, F, ()>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(<S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
B: Send + 'static,
impl<S, F, B, Fut, Res> Service<Request<B>> for HandleError<S, F, ()>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(<S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, ()> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, ()> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1> Service<Request<B>> for HandleError<S, F, (T1,)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1> Service<Request<B>> for HandleError<S, F, (T1,)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1,)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1,)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2> Service<Request<B>> for HandleError<S, F, (T1, T2)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2> Service<Request<B>> for HandleError<S, F, (T1, T2)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3> Service<Request<B>> for HandleError<S, F, (T1, T2, T3)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3> Service<Request<B>> for HandleError<S, F, (T1, T2, T3)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3, T4> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3, T4> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3, T4)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3, T4)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3, T4, T5)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3, T4, T5)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3, T4, T5, T6)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3, T4, T5, T6)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
T11: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
T11: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
T11: FromRequestParts<()> + Send,
T12: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
T11: FromRequestParts<()> + Send,
T12: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
T11: FromRequestParts<()> + Send,
T12: FromRequestParts<()> + Send,
T13: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
T11: FromRequestParts<()> + Send,
T12: FromRequestParts<()> + Send,
T13: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
T11: FromRequestParts<()> + Send,
T12: FromRequestParts<()> + Send,
T13: FromRequestParts<()> + Send,
T14: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
T11: FromRequestParts<()> + Send,
T12: FromRequestParts<()> + Send,
T13: FromRequestParts<()> + Send,
T14: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
T11: FromRequestParts<()> + Send,
T12: FromRequestParts<()> + Send,
T13: FromRequestParts<()> + Send,
T14: FromRequestParts<()> + Send,
T15: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
T11: FromRequestParts<()> + Send,
T12: FromRequestParts<()> + Send,
T13: FromRequestParts<()> + Send,
T14: FromRequestParts<()> + Send,
T15: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> as Service<Request<B>>>::Future
Source§impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
T11: FromRequestParts<()> + Send,
T12: FromRequestParts<()> + Send,
T13: FromRequestParts<()> + Send,
T14: FromRequestParts<()> + Send,
T15: FromRequestParts<()> + Send,
T16: FromRequestParts<()> + Send,
B: Send + 'static,
impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Service<Request<B>> for HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)>where
S: Service<Request<B>> + Clone + Send + 'static,
<S as Service<Request<B>>>::Response: IntoResponse + Send,
<S as Service<Request<B>>>::Error: Send,
<S as Service<Request<B>>>::Future: Send,
F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, <S as Service<Request<B>>>::Error) -> Fut + Clone + Send + 'static,
Fut: Future<Output = Res> + Send,
Res: IntoResponse,
T1: FromRequestParts<()> + Send,
T2: FromRequestParts<()> + Send,
T3: FromRequestParts<()> + Send,
T4: FromRequestParts<()> + Send,
T5: FromRequestParts<()> + Send,
T6: FromRequestParts<()> + Send,
T7: FromRequestParts<()> + Send,
T8: FromRequestParts<()> + Send,
T9: FromRequestParts<()> + Send,
T10: FromRequestParts<()> + Send,
T11: FromRequestParts<()> + Send,
T12: FromRequestParts<()> + Send,
T13: FromRequestParts<()> + Send,
T14: FromRequestParts<()> + Send,
T15: FromRequestParts<()> + Send,
T16: FromRequestParts<()> + Send,
B: Send + 'static,
type Response = Response<Body>
type Error = Infallible
type Future = HandleErrorFuture
fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <HandleError<S, F, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> as Service<Request<B>>>::Future
Source§impl<S, F, R1, R2> Service<R1> for MapRequest<S, F>
impl<S, F, R1, R2> Service<R1> for MapRequest<S, F>
type Response = <S as Service<R2>>::Response
type Error = <S as Service<R2>>::Error
type Future = <S as Service<R2>>::Future
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <S as Service<R2>>::Error>>
fn call(&mut self, request: R1) -> <S as Service<R2>>::Future
Source§impl<S, F, Request, Error> Service<Request> for MapErr<S, F>
impl<S, F, Request, Error> Service<Request> for MapErr<S, F>
type Response = <S as Service<Request>>::Response
type Error = Error
type Future = MapErrFuture<<S as Service<Request>>::Future, F>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapErr<S, F> as Service<Request>>::Error>>
fn call( &mut self, request: Request, ) -> <MapErr<S, F> as Service<Request>>::Future
Source§impl<S, F, Request, Fut> Service<Request> for AndThen<S, F>
impl<S, F, Request, Fut> Service<Request> for AndThen<S, F>
type Response = <Fut as TryFuture>::Ok
type Error = <Fut as TryFuture>::Error
type Future = AndThenFuture<<S as Service<Request>>::Future, Fut, F>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <AndThen<S, F> as Service<Request>>::Error>>
fn call( &mut self, request: Request, ) -> <AndThen<S, F> as Service<Request>>::Future
Source§impl<S, F, Request, Response> Service<Request> for MapResponse<S, F>
impl<S, F, Request, Response> Service<Request> for MapResponse<S, F>
type Response = Response
type Error = <S as Service<Request>>::Error
type Future = MapResponseFuture<<S as Service<Request>>::Future, F>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<S, F> as Service<Request>>::Error>>
fn call( &mut self, request: Request, ) -> <MapResponse<S, F> as Service<Request>>::Future
Source§impl<S, F, Request, Response, Error> Service<Request> for MapResult<S, F>
impl<S, F, Request, Response, Error> Service<Request> for MapResult<S, F>
type Response = Response
type Error = Error
type Future = MapResultFuture<<S as Service<Request>>::Future, F>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResult<S, F> as Service<Request>>::Error>>
fn call( &mut self, request: Request, ) -> <MapResult<S, F> as Service<Request>>::Future
Source§impl<S, F, Request, Response, Error, Fut> Service<Request> for Then<S, F>
impl<S, F, Request, Response, Error, Fut> Service<Request> for Then<S, F>
type Response = Response
type Error = Error
type Future = ThenFuture<<S as Service<Request>>::Future, Fut, F>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <Then<S, F> as Service<Request>>::Error>>
fn call(&mut self, request: Request) -> <Then<S, F> as Service<Request>>::Future
Source§impl<S, ReqBody, ResBody, M, OnRequestT, OnResponseT, OnFailureT, OnBodyChunkT, OnEosT, MakeSpanT> Service<Request<ReqBody>> for Trace<S, M, MakeSpanT, OnRequestT, OnResponseT, OnBodyChunkT, OnEosT, OnFailureT>where
S: Service<Request<ReqBody>, Response = Response<ResBody>>,
ReqBody: Body,
ResBody: Body,
<ResBody as Body>::Error: Display + 'static,
<S as Service<Request<ReqBody>>>::Error: Display + 'static,
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, ReqBody, ResBody, M, OnRequestT, OnResponseT, OnFailureT, OnBodyChunkT, OnEosT, MakeSpanT> Service<Request<ReqBody>> for Trace<S, M, MakeSpanT, OnRequestT, OnResponseT, OnBodyChunkT, OnEosT, OnFailureT>where
S: Service<Request<ReqBody>, Response = Response<ResBody>>,
ReqBody: Body,
ResBody: Body,
<ResBody as Body>::Error: Display + 'static,
<S as Service<Request<ReqBody>>>::Error: Display + 'static,
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<Request<ReqBody>>>::Error
type Future = ResponseFuture<<S as Service<Request<ReqBody>>>::Future, <M as MakeClassifier>::Classifier, OnResponseT, OnBodyChunkT, OnEosT, OnFailureT>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <Trace<S, M, MakeSpanT, OnRequestT, OnResponseT, OnBodyChunkT, OnEosT, OnFailureT> as Service<Request<ReqBody>>>::Error>>
fn call( &mut self, req: Request<ReqBody>, ) -> <Trace<S, M, MakeSpanT, OnRequestT, OnResponseT, OnBodyChunkT, OnEosT, OnFailureT> as Service<Request<ReqBody>>>::Future
Source§impl<S, Request> Service<Request> for Box<S>
impl<S, Request> Service<Request> for Box<S>
type Response = <S as Service<Request>>::Response
type Error = <S as Service<Request>>::Error
type Future = <S as Service<Request>>::Future
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <S as Service<Request>>::Error>>
fn call(&mut self, request: Request) -> <S as Service<Request>>::Future
Source§impl<S, Request> Service<Request> for Timeout<S>
impl<S, Request> Service<Request> for Timeout<S>
type Response = <S as Service<Request>>::Response
type Error = Box<dyn Error + Send + Sync>
type Future = ResponseFuture<<S as Service<Request>>::Future>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <Timeout<S> as Service<Request>>::Error>>
fn call(&mut self, request: Request) -> <Timeout<S> as Service<Request>>::Future
Source§impl<S, T> Service<T> for IntoMakeService<S>where
S: Clone,
impl<S, T> Service<T> for IntoMakeService<S>where
S: Clone,
type Response = S
type Error = Infallible
type Future = IntoMakeServiceFuture<S>
fn poll_ready( &mut self, _cx: &mut Context<'_>, ) -> Poll<Result<(), <IntoMakeService<S> as Service<T>>::Error>>
fn call(&mut self, _target: T) -> <IntoMakeService<S> as Service<T>>::Future
Source§impl<T, E, B, S> Service<Request<B>> for FromExtractor<T, E, S>
impl<T, E, B, S> Service<Request<B>> for FromExtractor<T, E, S>
type Response = Response<Body>
type Error = <T as Service<Request<B>>>::Error
type Future = ResponseFuture<B, T, E, S>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromExtractor<T, E, S> as Service<Request<B>>>::Error>>
fn call( &mut self, req: Request<B>, ) -> <FromExtractor<T, E, S> as Service<Request<B>>>::Future
Source§impl<T, Request> Service<Request> for Optional<T>
impl<T, Request> Service<Request> for Optional<T>
type Response = <T as Service<Request>>::Response
type Error = Box<dyn Error + Send + Sync>
type Future = ResponseFuture<<T as Service<Request>>::Future>
fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <Optional<T> as Service<Request>>::Error>>
fn call( &mut self, request: Request, ) -> <Optional<T> as Service<Request>>::Future
Source§impl<T, U, E> Service<T> for BoxService<T, U, E>
impl<T, U, E> Service<T> for BoxService<T, U, E>
Source§impl<T, U, E> Service<T> for UnsyncBoxService<T, U, E>
impl<T, U, E> Service<T> for UnsyncBoxService<T, U, E>
Source§impl<T, U, E> Service<T> for BoxCloneService<T, U, E>
impl<T, U, E> Service<T> for BoxCloneService<T, U, E>
Implementors§
Source§impl Service<ProtocolRequest<MockStream, Body>> for MockProtocol
Available on crate features mocks
and client
only.
impl Service<ProtocolRequest<MockStream, Body>> for MockProtocol
mocks
and client
only.type Response = MockSender
type Error = ConnectionError
type Future = Ready<Result<MockSender, ConnectionError>>
Source§impl Service<Parts> for DuplexTransport
Available on crate features stream
and client
only.
impl Service<Parts> for DuplexTransport
stream
and client
only.Source§impl Service<Parts> for MockTransport
Available on crate features mocks
and client
only.
impl Service<Parts> for MockTransport
mocks
and client
only.Source§impl<C, B> Service<ExecuteRequest<C, B>> for RequestExecutor<C, B>
Available on crate feature client
only.
impl<C, B> Service<ExecuteRequest<C, B>> for RequestExecutor<C, B>
client
only.Source§impl<C, IO> Service<&IO> for MakeServiceConnectionInfoService<C>where
C: ServiceRef<IO> + Clone + Send + 'static,
IO: HasConnectionInfo + Send + 'static,
IO::Addr: Clone + Send + Sync + 'static,
Available on crate feature server
only.
impl<C, IO> Service<&IO> for MakeServiceConnectionInfoService<C>where
C: ServiceRef<IO> + Clone + Send + 'static,
IO: HasConnectionInfo + Send + 'static,
IO::Addr: Clone + Send + Sync + 'static,
server
only.type Response = ConnectionWithInfo<<C as ServiceRef<IO>>::Response, <IO as HasConnectionInfo>::Addr>
type Error = <C as ServiceRef<IO>>::Error
type Future = MakeServiceConnectionInfoFuture<C, IO>
Source§impl<E, IO, BIn> Service<ProtocolRequest<IO, BIn>> for hyperdriver::client::conn::protocol::http2::Builder<E>
Available on crate feature client
only.
impl<E, IO, BIn> Service<ProtocolRequest<IO, BIn>> for hyperdriver::client::conn::protocol::http2::Builder<E>
client
only.type Response = HttpConnection<BIn>
type Error = ConnectionError
type Future = Pin<Box<dyn Future<Output = Result<HttpConnection<BIn>, ConnectionError>> + Send>>
Source§impl<IO, B> Service<ProtocolRequest<IO, B>> for HttpConnectionBuilder<B>
Available on crate feature client
only.
impl<IO, B> Service<ProtocolRequest<IO, B>> for HttpConnectionBuilder<B>
client
only.Source§impl<IO, B> Service<ProtocolRequest<IO, B>> for hyperdriver::client::conn::protocol::http1::Builder
Available on crate feature client
only.
impl<IO, B> Service<ProtocolRequest<IO, B>> for hyperdriver::client::conn::protocol::http1::Builder
client
only.type Response = HttpConnection<B>
type Error = ConnectionError
type Future = Pin<Box<dyn Future<Output = Result<HttpConnection<B>, ConnectionError>> + Send>>
Source§impl<M, S, Req, E> Service<Req> for OptionService<M, S>
impl<M, S, Req, E> Service<Req> for OptionService<M, S>
Source§impl<P, C, T, S, BIn, BOut, K> Service<Request<BIn>> for ConnectionPoolService<T, P, S, BIn, K>where
C: Connection<BIn, ResBody = BOut> + PoolableConnection,
P: Protocol<T::IO, BIn, Connection = C, Error = ConnectionError> + Clone + Send + Sync + 'static,
T: Transport + Send + 'static,
T::IO: PoolableStream + Unpin,
<<T as Transport>::IO as HasConnectionInfo>::Addr: Send,
S: Service<ExecuteRequest<C, BIn>, Response = Response<BOut>> + Clone + Send + 'static,
S::Error: Into<Error>,
BOut: Body + Unpin + 'static,
BIn: Body + Unpin + Send + 'static,
<BIn as Body>::Data: Send,
<BIn as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
K: Key,
Available on crate feature client
only.
impl<P, C, T, S, BIn, BOut, K> Service<Request<BIn>> for ConnectionPoolService<T, P, S, BIn, K>where
C: Connection<BIn, ResBody = BOut> + PoolableConnection,
P: Protocol<T::IO, BIn, Connection = C, Error = ConnectionError> + Clone + Send + Sync + 'static,
T: Transport + Send + 'static,
T::IO: PoolableStream + Unpin,
<<T as Transport>::IO as HasConnectionInfo>::Addr: Send,
S: Service<ExecuteRequest<C, BIn>, Response = Response<BOut>> + Clone + Send + 'static,
S::Error: Into<Error>,
BOut: Body + Unpin + 'static,
BIn: Body + Unpin + Send + 'static,
<BIn as Body>::Data: Send,
<BIn as Body>::Error: Into<Box<dyn Error + Send + Sync>>,
K: Key,
client
only.Source§impl<R, IO> Service<Parts> for TcpTransport<R, IO>
Available on crate feature client
only.
impl<R, IO> Service<Parts> for TcpTransport<R, IO>
client
only.Source§impl<S, A, BIn, BOut> Service<Request<BIn>> for ConnectionWithInfo<S, A>
Available on crate feature server
only.
impl<S, A, BIn, BOut> Service<Request<BIn>> for ConnectionWithInfo<S, A>
server
only.Source§impl<S, B> Service<Request<B>> for SetHostHeader<S>
Available on crate feature client
only.
impl<S, B> Service<Request<B>> for SetHostHeader<S>
client
only.Source§impl<S, B, C> Service<ExecuteRequest<C, B>> for SetHostHeader<S>
Available on crate feature client
only.
impl<S, B, C> Service<ExecuteRequest<C, B>> for SetHostHeader<S>
client
only.Source§impl<S, BIn, BOut> Service<Request<BIn>> for TlsConnection<S>
Available on crate features tls
and server
only.
impl<S, BIn, BOut> Service<Request<BIn>> for TlsConnection<S>
tls
and server
only.Source§impl<S, BIn, BOut> Service<Request<BIn>> for ValidateSNIService<S>
Available on crate features sni
and tls
and server
only.
impl<S, BIn, BOut> Service<Request<BIn>> for ValidateSNIService<S>
sni
and tls
and server
only.type Response = Response<BOut>
type Error = SNIMiddlewareError<<S as Service<Request<BIn>>>::Error>
type Future = Either<Ready<Result<<ValidateSNIService<S> as Service<Request<BIn>>>::Response, <ValidateSNIService<S> as Service<Request<BIn>>>::Error>>, MapErr<<S as Service<Request<BIn>>>::Future, fn(_: <S as Service<Request<BIn>>>::Error) -> <ValidateSNIService<S> as Service<Request<BIn>>>::Error>>
Source§impl<S, C, B> Service<ExecuteRequest<C, B>> for Http1ChecksService<S, C, B>
Available on crate feature client
only.
impl<S, C, B> Service<ExecuteRequest<C, B>> for Http1ChecksService<S, C, B>
client
only.type Response = <S as Service<ExecuteRequest<C, B>>>::Response
type Error = <S as Service<ExecuteRequest<C, B>>>::Error
type Future = MaybeErrorFuture<<S as Service<ExecuteRequest<C, B>>>::Future, <S as Service<ExecuteRequest<C, B>>>::Response, <S as Service<ExecuteRequest<C, B>>>::Error>
Source§impl<S, C, B> Service<ExecuteRequest<C, B>> for Http2ChecksService<S, C, B>
Available on crate feature client
only.
impl<S, C, B> Service<ExecuteRequest<C, B>> for Http2ChecksService<S, C, B>
client
only.type Response = <S as Service<ExecuteRequest<C, B>>>::Response
type Error = <S as Service<ExecuteRequest<C, B>>>::Error
type Future = MaybeErrorFuture<<S as Service<ExecuteRequest<C, B>>>::Future, <S as Service<ExecuteRequest<C, B>>>::Response, <S as Service<ExecuteRequest<C, B>>>::Error>
Source§impl<S, E, Req> Service<Req> for hyperdriver::service::Timeout<S, E>where
S: Service<Req, Error = E>,
impl<S, E, Req> Service<Req> for hyperdriver::service::Timeout<S, E>where
S: Service<Req, Error = E>,
Source§impl<S, F, R> Service<R> for PreprocessService<S, F>
impl<S, F, R> Service<R> for PreprocessService<S, F>
Source§impl<S, IO> Service<&IO> for TlsConnectionInfoService<S>
Available on crate features tls
and server
only.
impl<S, IO> Service<&IO> for TlsConnectionInfoService<S>
tls
and server
only.type Response = TlsConnection<<S as ServiceRef<IO>>::Response>
type Error = <S as ServiceRef<IO>>::Error
type Future = TlsConnectionFuture<S, IO>
Source§impl<T> Service<Parts> for IntoStream<T>
Available on crate features stream
and client
only.
impl<T> Service<Parts> for IntoStream<T>
stream
and client
only.Source§impl<T> Service<Parts> for TlsTransport<T>where
T: Transport,
<T as Transport>::IO: HasConnectionInfo + AsyncRead + AsyncWrite + Unpin,
<<T as Transport>::IO as HasConnectionInfo>::Addr: Clone + Send + Unpin,
Available on crate feature client
only.
impl<T> Service<Parts> for TlsTransport<T>where
T: Transport,
<T as Transport>::IO: HasConnectionInfo + AsyncRead + AsyncWrite + Unpin,
<<T as Transport>::IO as HasConnectionInfo>::Addr: Clone + Send + Unpin,
client
only.Source§impl<T> Service<Parts> for TlsTransportWrapper<T>where
T: Transport,
<T as Transport>::IO: HasConnectionInfo + AsyncRead + AsyncWrite + Unpin,
<<T as Transport>::IO as HasConnectionInfo>::Addr: Clone + Send + Unpin,
Available on crate features tls
and client
only.
impl<T> Service<Parts> for TlsTransportWrapper<T>where
T: Transport,
<T as Transport>::IO: HasConnectionInfo + AsyncRead + AsyncWrite + Unpin,
<<T as Transport>::IO as HasConnectionInfo>::Addr: Clone + Send + Unpin,
tls
and client
only.Source§impl<T, BIn, BOut> Service<Request<Incoming>> for IncomingRequestService<T, BIn, BOut>
Available on crate feature incoming
only.
impl<T, BIn, BOut> Service<Request<Incoming>> for IncomingRequestService<T, BIn, BOut>
incoming
only.Source§impl<T, BIn, BOut> Service<Request<BIn>> for IncomingResponseService<T, BIn, BOut>
Available on crate feature incoming
only.
impl<T, BIn, BOut> Service<Request<BIn>> for IncomingResponseService<T, BIn, BOut>
incoming
only.