Skip to main content

Service

Trait Service 

Source
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§

Source

type Response

Responses given by the service.

Source

type Error

Errors produced by the service.

Source

type Future: Future<Output = Result<Self::Response, Self::Error>>

The future response value.

Required Methods§

Source

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.

Source

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<Request<Body>> for Next

Source§

impl<'a, S, Request> Service<Request> for &'a mut S
where S: Service<Request> + 'a,

Source§

type Response = <S as Service<Request>>::Response

Source§

type Error = <S as Service<Request>>::Error

Source§

type Future = <S as Service<Request>>::Future

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <S as Service<Request>>::Error>>

Source§

fn call(&mut self, request: Request) -> <S as Service<Request>>::Future

Source§

impl<A, B, Request> Service<Request> for Either<A, B>
where A: Service<Request>, B: Service<Request, Response = <A as Service<Request>>::Response, Error = <A as Service<Request>>::Error>,

Source§

type Response = <A as Service<Request>>::Response

Source§

type Error = <A as Service<Request>>::Error

Source§

type Future = EitherResponseFuture<<A as Service<Request>>::Future, <B as Service<Request>>::Future>

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <Either<A, B> as Service<Request>>::Error>>

Source§

fn call( &mut self, request: Request, ) -> <Either<A, B> as Service<Request>>::Future

Source§

impl<B> Service<Request<B>> for Router
where B: Body<Data = Bytes> + Send + 'static, <B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,

Source§

impl<B> Service<Request<B>> for RouterAsService<'_, B>
where B: Body<Data = Bytes> + Send + 'static, <B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,

Source§

type Response = Response<Body>

Source§

type Error = Infallible

Source§

type Future = RouteFuture<Infallible>

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <RouterAsService<'_, B> as Service<Request<B>>>::Error>>

Source§

fn call( &mut self, req: Request<B>, ) -> <RouterAsService<'_, B> as Service<Request<B>>>::Future

Source§

impl<B> Service<Request<B>> for RouterIntoService<B>
where B: Body<Data = Bytes> + Send + 'static, <B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,

Source§

impl<B, E> Service<Request<B>> for MethodRouter<(), E>
where B: Body<Data = Bytes> + Send + 'static, <B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,

Source§

type Response = Response<Body>

Source§

type Error = E

Source§

type Future = RouteFuture<E>

Source§

fn poll_ready( &mut self, _cx: &mut Context<'_>, ) -> Poll<Result<(), <MethodRouter<(), E> as Service<Request<B>>>::Error>>

Source§

fn call( &mut self, req: Request<B>, ) -> <MethodRouter<(), E> as Service<Request<B>>>::Future

Source§

impl<B, E> Service<Request<B>> for Route<E>
where B: Body<Data = Bytes> + Send + 'static, <B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,

Source§

type Response = Response<Body>

Source§

type Error = E

Source§

type Future = RouteFuture<E>

Source§

fn poll_ready( &mut self, _cx: &mut Context<'_>, ) -> Poll<Result<(), <Route<E> as Service<Request<B>>>::Error>>

Source§

fn call(&mut self, req: Request<B>) -> <Route<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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

Source§

type Response = Response<Body>

Source§

type Error = Infallible

Source§

type Future = ResponseFuture

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1,)> as Service<Request<Body>>>::Error>>

Source§

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

Source§

type Response = Response<Body>

Source§

type Error = Infallible

Source§

type Future = ResponseFuture

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromFn<F, S, I, (T1, T2)> as Service<Request<Body>>>::Error>>

Source§

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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 + Sync + 'static, <I as Service<Request<Body>>>::Response: IntoResponse, <I as Service<Request<Body>>>::Future: Send + 'static, S: Clone + Send + Sync + 'static,

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,

Source§

type Response = Response<Body>

Source§

type Error = Infallible

Source§

type Future = ResponseFuture

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, ()> as Service<Request<B>>>::Error>>

Source§

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,

Source§

type Response = Response<Body>

Source§

type Error = Infallible

Source§

type Future = ResponseFuture

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1,)> as Service<Request<B>>>::Error>>

Source§

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,

Source§

type Response = Response<Body>

Source§

type Error = Infallible

Source§

type Future = ResponseFuture

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2)> as Service<Request<B>>>::Error>>

Source§

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,

Source§

type Response = Response<Body>

Source§

type Error = Infallible

Source§

type Future = ResponseFuture

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<F, S, I, (T1, T2, T3)> as Service<Request<B>>>::Error>>

Source§

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

Source§

type Response = Response<Body>

Source§

type Error = Infallible

Source§

type Future = ResponseFuture

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1,)> as Service<Request<B>>>::Error>>

Source§

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,

Source§

type Response = Response<Body>

Source§

type Error = Infallible

Source§

type Future = ResponseFuture

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2)> as Service<Request<B>>>::Error>>

Source§

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,

Source§

type Response = Response<Body>

Source§

type Error = Infallible

Source§

type Future = ResponseFuture

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapRequest<F, S, I, (T1, T2, T3)> as Service<Request<B>>>::Error>>

Source§

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

Source§

impl<F, S, R, E> Service<R> for FutureService<F, S>
where F: Future<Output = Result<S, E>> + Unpin, S: Service<R, Error = E>,

Source§

type Response = <S as Service<R>>::Response

Source§

type Error = E

Source§

type Future = <S as Service<R>>::Future

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FutureService<F, S> as Service<R>>::Error>>

Source§

fn call(&mut self, req: R) -> <FutureService<F, S> as Service<R>>::Future

Source§

impl<H, T, S, B> Service<Request<B>> for HandlerService<H, T, S>
where H: Handler<T, S> + Clone + Send + 'static, B: Body<Data = Bytes> + Send + 'static, <B as Body>::Error: Into<Box<dyn Error + Send + Sync>>, S: Clone + Send + Sync,

Source§

type Response = Response<Body>

Source§

type Error = Infallible

Source§

type Future = IntoServiceFuture<<H as Handler<T, S>>::Future>

Source§

fn poll_ready( &mut self, _cx: &mut Context<'_>, ) -> Poll<Result<(), <HandlerService<H, T, S> as Service<Request<B>>>::Error>>

Source§

fn call( &mut self, req: Request<B>, ) -> <HandlerService<H, T, S> as Service<Request<B>>>::Future

Source§

impl<R, S, F, T, E, Fut> Service<R> for MapFuture<S, F>
where S: Service<R>, F: FnMut(<S as Service<R>>::Future) -> Fut, E: From<<S as Service<R>>::Error>, Fut: Future<Output = Result<T, E>>,

Source§

type Response = T

Source§

type Error = E

Source§

type Future = Fut

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapFuture<S, F> as Service<R>>::Error>>

Source§

fn call(&mut self, req: R) -> <MapFuture<S, F> as Service<R>>::Future

Source§

impl<ResBody, S, T> Service<Request<ResBody>> for AddExtension<S, T>
where S: Service<Request<ResBody>>, T: Clone + Send + Sync + 'static,

Source§

type Response = <S as Service<Request<ResBody>>>::Response

Source§

type Error = <S as Service<Request<ResBody>>>::Error

Source§

type Future = <S as Service<Request<ResBody>>>::Future

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <AddExtension<S, T> as Service<Request<ResBody>>>::Error>>

Source§

fn call( &mut self, req: Request<ResBody>, ) -> <AddExtension<S, T> as Service<Request<ResBody>>>::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,

Source§

type Response = Response<Body>

Source§

type Error = Infallible

Source§

type Future = HandleErrorFuture

Source§

fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, ()> as Service<Request<B>>>::Error>>

Source§

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,

Source§

type Response = Response<Body>

Source§

type Error = Infallible

Source§

type Future = HandleErrorFuture

Source§

fn poll_ready( &mut self, _: &mut Context<'_>, ) -> Poll<Result<(), <HandleError<S, F, (T1,)> as Service<Request<B>>>::Error>>

Source§

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

Source§

impl<S, F, R1, R2> Service<R1> for MapRequest<S, F>
where S: Service<R2>, F: FnMut(R1) -> R2,

Source§

type Response = <S as Service<R2>>::Response

Source§

type Error = <S as Service<R2>>::Error

Source§

type Future = <S as Service<R2>>::Future

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <S as Service<R2>>::Error>>

Source§

fn call(&mut self, request: R1) -> <S as Service<R2>>::Future

Source§

impl<S, F, Request, Error> Service<Request> for MapErr<S, F>
where S: Service<Request>, F: FnOnce(<S as Service<Request>>::Error) -> Error + Clone,

Source§

type Response = <S as Service<Request>>::Response

Source§

type Error = Error

Source§

type Future = MapErrFuture<<S as Service<Request>>::Future, F>

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapErr<S, F> as Service<Request>>::Error>>

Source§

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>
where S: Service<Request>, <S as Service<Request>>::Error: Into<<Fut as TryFuture>::Error>, F: FnOnce(<S as Service<Request>>::Response) -> Fut + Clone, Fut: TryFuture,

Source§

type Response = <Fut as TryFuture>::Ok

Source§

type Error = <Fut as TryFuture>::Error

Source§

type Future = AndThenFuture<<S as Service<Request>>::Future, Fut, F>

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <AndThen<S, F> as Service<Request>>::Error>>

Source§

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>
where S: Service<Request>, F: FnOnce(<S as Service<Request>>::Response) -> Response + Clone,

Source§

type Response = Response

Source§

type Error = <S as Service<Request>>::Error

Source§

type Future = MapResponseFuture<<S as Service<Request>>::Future, F>

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResponse<S, F> as Service<Request>>::Error>>

Source§

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>
where S: Service<Request>, Error: From<<S as Service<Request>>::Error>, F: FnOnce(Result<<S as Service<Request>>::Response, <S as Service<Request>>::Error>) -> Result<Response, Error> + Clone,

Source§

type Response = Response

Source§

type Error = Error

Source§

type Future = MapResultFuture<<S as Service<Request>>::Future, F>

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <MapResult<S, F> as Service<Request>>::Error>>

Source§

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>
where S: Service<Request>, <S as Service<Request>>::Error: Into<Error>, F: FnOnce(Result<<S as Service<Request>>::Response, <S as Service<Request>>::Error>) -> Fut + Clone, Fut: Future<Output = Result<Response, Error>>,

Source§

type Response = Response

Source§

type Error = Error

Source§

type Future = ThenFuture<<S as Service<Request>>::Future, Fut, F>

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <Then<S, F> as Service<Request>>::Error>>

Source§

fn call(&mut self, request: Request) -> <Then<S, F> as Service<Request>>::Future

Source§

impl<S, Request> Service<Request> for Box<S>
where S: Service<Request> + ?Sized,

Source§

type Response = <S as Service<Request>>::Response

Source§

type Error = <S as Service<Request>>::Error

Source§

type Future = <S as Service<Request>>::Future

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <S as Service<Request>>::Error>>

Source§

fn call(&mut self, request: Request) -> <S as Service<Request>>::Future

Source§

impl<S, Request, ResBody> Service<Request> for ResponseAxumBody<S>
where S: Service<Request, Response = Response<ResBody>>, ResBody: Body<Data = Bytes> + Send + 'static, <ResBody as Body>::Error: Error + Send + Sync,

Source§

type Response = Response<Body>

Source§

type Error = <S as Service<Request>>::Error

Source§

type Future = ResponseAxumBodyFuture<<S as Service<Request>>::Future>

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <ResponseAxumBody<S> as Service<Request>>::Error>>

Source§

fn call( &mut self, req: Request, ) -> <ResponseAxumBody<S> as Service<Request>>::Future

Source§

impl<S, T> Service<T> for IntoMakeService<S>
where S: Clone,

Source§

type Response = S

Source§

type Error = Infallible

Source§

type Future = IntoMakeServiceFuture<S>

Source§

fn poll_ready( &mut self, _cx: &mut Context<'_>, ) -> Poll<Result<(), <IntoMakeService<S> as Service<T>>::Error>>

Source§

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>
where E: FromRequestParts<S> + 'static, B: Send + 'static, T: Service<Request<B>> + Clone, <T as Service<Request<B>>>::Response: IntoResponse, S: Clone + Send + Sync + 'static,

Source§

type Response = Response<Body>

Source§

type Error = <T as Service<Request<B>>>::Error

Source§

type Future = ResponseFuture<B, T, E, S>

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <FromExtractor<T, E, S> as Service<Request<B>>>::Error>>

Source§

fn call( &mut self, req: Request<B>, ) -> <FromExtractor<T, E, S> as Service<Request<B>>>::Future

Source§

impl<T, F, Request, R, E> Service<Request> for ServiceFn<T>
where T: FnMut(Request) -> F, F: Future<Output = Result<R, E>>,

Source§

type Response = R

Source§

type Error = E

Source§

type Future = F

Source§

fn poll_ready(&mut self, _: &mut Context<'_>) -> Poll<Result<(), E>>

Source§

fn call(&mut self, req: Request) -> <ServiceFn<T> as Service<Request>>::Future

Source§

impl<T, Request> Service<Request> for Optional<T>
where T: Service<Request>, <T as Service<Request>>::Error: Into<Box<dyn Error + Send + Sync>>,

Source§

type Response = <T as Service<Request>>::Response

Source§

type Error = Box<dyn Error + Send + Sync>

Source§

type Future = ResponseFuture<<T as Service<Request>>::Future>

Source§

fn poll_ready( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), <Optional<T> as Service<Request>>::Error>>

Source§

fn call( &mut self, request: Request, ) -> <Optional<T> as Service<Request>>::Future

Source§

impl<T, U, E> Service<T> for BoxService<T, U, E>

Source§

type Response = U

Source§

type Error = E

Source§

type Future = Pin<Box<dyn Future<Output = Result<U, E>> + Send>>

Source§

fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), E>>

Source§

fn call( &mut self, request: T, ) -> Pin<Box<dyn Future<Output = Result<U, E>> + Send>>

Source§

impl<T, U, E> Service<T> for UnsyncBoxService<T, U, E>

Source§

type Response = U

Source§

type Error = E

Source§

type Future = Pin<Box<dyn Future<Output = Result<U, E>>>>

Source§

fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), E>>

Source§

fn call(&mut self, request: T) -> Pin<Box<dyn Future<Output = Result<U, E>>>>

Source§

impl<T, U, E> Service<T> for BoxCloneService<T, U, E>

Source§

type Response = U

Source§

type Error = E

Source§

type Future = Pin<Box<dyn Future<Output = Result<U, E>> + Send>>

Source§

fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), E>>

Source§

fn call( &mut self, request: T, ) -> <BoxCloneService<T, U, E> as Service<T>>::Future

Source§

impl<T, U, E> Service<T> for BoxCloneSyncService<T, U, E>

Source§

type Response = U

Source§

type Error = E

Source§

type Future = Pin<Box<dyn Future<Output = Result<U, E>> + Send>>

Source§

fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), E>>

Source§

fn call( &mut self, request: T, ) -> <BoxCloneSyncService<T, U, E> as Service<T>>::Future

Implementors§

Source§

impl Service<Request<Body>> for celerix::axum::middleware::Next

Source§

impl<B> Service<Request<B>> for celerix::axum::routing::RouterAsService<'_, B>
where B: Body<Data = Bytes> + Send + 'static, <B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,

Source§

impl<B> Service<Request<B>> for celerix::axum::routing::RouterIntoService<B>
where B: Body<Data = Bytes> + Send + 'static, <B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,

Source§

impl<B> Service<Request<B>> for celerix::axum::Router
where B: Body<Data = Bytes> + Send + 'static, <B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,

Source§

impl<B, E> Service<Request<B>> for celerix::axum::routing::MethodRouter<(), E>
where B: Body<Data = Bytes> + Send + 'static, <B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,

Source§

impl<B, E> Service<Request<B>> for celerix::axum::routing::Route<E>
where B: Body<Data = Bytes> + Send + 'static, <B as Body>::Error: Into<Box<dyn Error + Send + Sync>>,

Source§

impl<F, Fut, Out, S, I, T1> Service<Request<Body>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, Out, S, I, T1, T2> Service<Request<Body>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, Out, S, I, T1, T2, T3> Service<Request<Body>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, Out, S, I, T1, T2, T3, T4> Service<Request<Body>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5> Service<Request<Body>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6> Service<Request<Body>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7> Service<Request<Body>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8> Service<Request<Body>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9> Service<Request<Body>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Service<Request<Body>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Service<Request<Body>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Service<Request<Body>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, Out, S, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Service<Request<Body>> for celerix::axum::middleware::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,

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 celerix::axum::middleware::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,

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 celerix::axum::middleware::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,

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 celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, ResBody> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, ResBody, T1> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, ResBody, T1, T2> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, ResBody, T1, T2, T3> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, ResBody, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Service<Request<B>> for celerix::axum::middleware::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,

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 celerix::axum::middleware::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,

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 celerix::axum::middleware::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,

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 celerix::axum::middleware::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,

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 celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, T1> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, T1, T2> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, T1, T2, T3> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, T1, T2, T3, T4> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, T1, T2, T3, T4, T5> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Service<Request<B>> for celerix::axum::middleware::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,

Source§

impl<F, Fut, S, I, B, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Service<Request<B>> for celerix::axum::middleware::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,

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 celerix::axum::middleware::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,

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 celerix::axum::middleware::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,

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 celerix::axum::middleware::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,

Source§

impl<H, T, S, B> Service<Request<B>> for celerix::axum::handler::HandlerService<H, T, S>
where H: Handler<T, S> + Clone + Send + 'static, B: Body<Data = Bytes> + Send + 'static, <B as Body>::Error: Into<Box<dyn Error + Send + Sync>>, S: Clone + Send + Sync,

Source§

impl<ResBody, S, T> Service<Request<ResBody>> for celerix::axum::middleware::AddExtension<S, T>
where S: Service<Request<ResBody>>, T: Clone + Send + Sync + 'static,

Source§

type Response = <S as Service<Request<ResBody>>>::Response

Source§

type Error = <S as Service<Request<ResBody>>>::Error

Source§

type Future = <S as Service<Request<ResBody>>>::Future

Source§

impl<S, F, B, Fut, Res> Service<Request<B>> for celerix::axum::error_handling::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,

Source§

impl<S, F, B, Res, Fut, T1> Service<Request<B>> for celerix::axum::error_handling::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,

Source§

impl<S, F, B, Res, Fut, T1, T2> Service<Request<B>> for celerix::axum::error_handling::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,

Source§

impl<S, F, B, Res, Fut, T1, T2, T3> Service<Request<B>> for celerix::axum::error_handling::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,

Source§

impl<S, F, B, Res, Fut, T1, T2, T3, T4> Service<Request<B>> for celerix::axum::error_handling::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,

Source§

impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5> Service<Request<B>> for celerix::axum::error_handling::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,

Source§

impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6> Service<Request<B>> for celerix::axum::error_handling::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,

Source§

impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7> Service<Request<B>> for celerix::axum::error_handling::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,

Source§

impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8> Service<Request<B>> for celerix::axum::error_handling::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,

Source§

impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9> Service<Request<B>> for celerix::axum::error_handling::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,

Source§

impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Service<Request<B>> for celerix::axum::error_handling::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,

Source§

impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Service<Request<B>> for celerix::axum::error_handling::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,

Source§

impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Service<Request<B>> for celerix::axum::error_handling::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,

Source§

impl<S, F, B, Res, Fut, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Service<Request<B>> for celerix::axum::error_handling::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,

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 celerix::axum::error_handling::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,

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 celerix::axum::error_handling::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,

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 celerix::axum::error_handling::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,

Source§

impl<S, T> Service<T> for celerix::axum::routing::IntoMakeService<S>
where S: Clone,

Source§

impl<T, E, B, S> Service<Request<B>> for celerix::axum::middleware::FromExtractor<T, E, S>
where E: FromRequestParts<S> + 'static, B: Send + 'static, T: Service<Request<B>> + Clone, <T as Service<Request<B>>>::Response: IntoResponse, S: Clone + Send + Sync + 'static,