Skip to main content

EndpointServiceFn

Trait EndpointServiceFn 

pub trait EndpointServiceFn<T, State>:
    Sealed<T, State>
    + Clone
    + Send
    + Sync
    + 'static { }
Available on crate features http and std only.
Expand description

rama_core::Service implemented for functions taking extractors.

§Rejections

An extractor that fails returns its Rejection instead of calling the function. How that rejection becomes a response depends on the return type:

  • A function returning impl IntoResponse requires ErrorResponse: From<Rejection> for every extractor argument. This conversion is provided for any rejection implementing IntoResponse.
  • A function returning Result<O, E> propagates rejections through E, so it requires E: From<Rejection> for every extractor argument. Result itself does not implement IntoResponse, so there is no fallback when such a From impl is missing.

A function that breaks either rule does not implement this trait, which the compiler reports as an unsatisfied IntoEndpointService or IntoEndpointServiceWithState bound rather than naming the missing impl.

When registering a Result<O, E> handler with WebService, response conversion additionally requires O: IntoResponse and E: Into<ErrorResponse>. Implementing IntoResponse for E provides the latter conversion, but is not required: ErrorResponse itself also satisfies it, as used by response::Result.

§Example

use rama_http::Response;
use rama_http::service::web::WebService;
use rama_http::service::web::extract::{Query, query::FailedToDeserializeQueryString};
use rama_http::service::web::response::IntoResponse;

#[derive(serde::Deserialize)]
struct Params {
    page: u32,
}

enum AppError {
    BadQuery(FailedToDeserializeQueryString),
}

// required for `Query` to be usable in a function returning `Result<_, AppError>`
impl From<FailedToDeserializeQueryString> for AppError {
    fn from(rejection: FailedToDeserializeQueryString) -> Self {
        Self::BadQuery(rejection)
    }
}

impl IntoResponse for AppError {
    fn into_response(self) -> Response {
        match self {
            Self::BadQuery(rejection) => rejection.into_response(),
        }
    }
}

async fn list(Query(params): Query<Params>) -> Result<String, AppError> {
    Ok(format!("page {}", params.page))
}

let _service = WebService::default().with_get("/items", list);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

§

impl<F, R, O, E, I, State> EndpointServiceFn<(((), I), ()), State> for F
where F: Fn(I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + From<<I as FromRequest>::Rejection> + 'static, I: FromRequest, State: Send + Sync + 'static,

§

impl<F, R, O, E, P, I, State> EndpointServiceFn<(((), P, I), ()), State> for F
where F: Fn(P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + 'static, P: FromOwnedRequestParts, I: FromRequestBody, State: Send + Sync + 'static,

§

impl<F, R, O, E, State, P, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), P, I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection> + From<<T11 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>, T11: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, P, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10), P, I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, P, I, T1, T2, T3, T4, T5, T6, T7, T8, T9> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9), P, I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, P, I, T1, T2, T3, T4, T5, T6, T7, T8> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8), P, I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, P, I, T1, T2, T3, T4, T5, T6, T7> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7), P, I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, P, I, T1, T2, T3, T4, T5, T6> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6), P, I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, P, I, T1, T2, T3, T4, T5> EndpointServiceFn<(((T1, T2, T3, T4, T5), P, I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, P, I, T1, T2, T3, T4> EndpointServiceFn<(((T1, T2, T3, T4), P, I), ()), State> for F
where F: Fn(T1, T2, T3, T4, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, P, I, T1, T2, T3> EndpointServiceFn<(((T1, T2, T3), P, I), ()), State> for F
where F: Fn(T1, T2, T3, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, P, I, T1, T2> EndpointServiceFn<(((T1, T2), P, I), ()), State> for F
where F: Fn(T1, T2, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, P, I, T1> EndpointServiceFn<(((T1,), P, I), ()), State> for F
where F: Fn(T1, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, T1: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, I> EndpointServiceFn<(((T1,), I), ()), State> for F
where F: Fn(T1, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, I: FromRequest, T1: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, I> EndpointServiceFn<(((T1, T2), I), ()), State> for F
where F: Fn(T1, T2, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, I: FromRequest, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, I> EndpointServiceFn<(((T1, T2, T3), I), ()), State> for F
where F: Fn(T1, T2, T3, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, I: FromRequest, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, I> EndpointServiceFn<(((T1, T2, T3, T4), I), ()), State> for F
where F: Fn(T1, T2, T3, T4, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, I: FromRequest, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, I> EndpointServiceFn<(((T1, T2, T3, T4, T5), I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, I: FromRequest, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6), I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, I: FromRequest, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6, T7, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7), I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, I: FromRequest, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6, T7, T8, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8), I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, I: FromRequest, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9), I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, I: FromRequest, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10), I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, I: FromRequest, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection> + From<<T11 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, I: FromRequest, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>, T11: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12), I), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection> + From<<T11 as FromPartsStateRefPair<State>>::Rejection> + From<<T12 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, I: FromRequest, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>, T11: FromPartsStateRefPair<State>, T12: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12), ()), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection> + From<<T11 as FromPartsStateRefPair<State>>::Rejection> + From<<T12 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>, T11: FromPartsStateRefPair<State>, T12: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), ()), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection> + From<<T11 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>, T11: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10), ()), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6, T7, T8, T9> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9), ()), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6, T7, T8> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8), ()), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6, T7> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7), ()), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5, T6> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6), ()), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4, T5> EndpointServiceFn<(((T1, T2, T3, T4, T5), ()), ()), State> for F
where F: Fn(T1, T2, T3, T4, T5) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3, T4> EndpointServiceFn<(((T1, T2, T3, T4), ()), ()), State> for F
where F: Fn(T1, T2, T3, T4) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2, T3> EndpointServiceFn<(((T1, T2, T3), ()), ()), State> for F
where F: Fn(T1, T2, T3) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1, T2> EndpointServiceFn<(((T1, T2), ()), ()), State> for F
where F: Fn(T1, T2) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State, T1> EndpointServiceFn<(((T1,), ()), ()), State> for F
where F: Fn(T1) -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static + From<<T1 as FromPartsStateRefPair<State>>::Rejection>, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>,

§

impl<F, R, O, E, State> EndpointServiceFn<(((), ()), ()), State> for F
where F: Fn() -> R + Clone + Send + Sync + 'static, R: Future<Output = Result<O, E>> + Send + 'static, O: Send + 'static, E: Send + 'static, State: Send + Sync + 'static,

§

impl<F, R, O, I, State> EndpointServiceFn<(((), I), !), State> for F
where F: Fn(I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, I: FromRequest, ErrorResponse: From<<I as FromRequest>::Rejection>, State: Send + Sync + 'static,

§

impl<F, R, O, P, I, State> EndpointServiceFn<(((), P, I), !), State> for F
where F: Fn(P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, P: FromOwnedRequestParts, I: FromRequestBody, ErrorResponse: From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection>, State: Send + Sync + 'static,

§

impl<F, R, O, State, P, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), P, I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, ErrorResponse: From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection> + From<<T11 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>, T11: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, P, I, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10), P, I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, ErrorResponse: From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, P, I, T1, T2, T3, T4, T5, T6, T7, T8, T9> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9), P, I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, ErrorResponse: From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, P, I, T1, T2, T3, T4, T5, T6, T7, T8> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8), P, I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, ErrorResponse: From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, P, I, T1, T2, T3, T4, T5, T6, T7> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7), P, I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, ErrorResponse: From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, P, I, T1, T2, T3, T4, T5, T6> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6), P, I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, ErrorResponse: From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, P, I, T1, T2, T3, T4, T5> EndpointServiceFn<(((T1, T2, T3, T4, T5), P, I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, ErrorResponse: From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, P, I, T1, T2, T3, T4> EndpointServiceFn<(((T1, T2, T3, T4), P, I), !), State> for F
where F: Fn(T1, T2, T3, T4, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, ErrorResponse: From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, P, I, T1, T2, T3> EndpointServiceFn<(((T1, T2, T3), P, I), !), State> for F
where F: Fn(T1, T2, T3, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, ErrorResponse: From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, P, I, T1, T2> EndpointServiceFn<(((T1, T2), P, I), !), State> for F
where F: Fn(T1, T2, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, ErrorResponse: From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, P, I, T1> EndpointServiceFn<(((T1,), P, I), !), State> for F
where F: Fn(T1, P, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, P: FromOwnedRequestParts, I: FromRequestBody, ErrorResponse: From<<P as FromOwnedRequestParts>::Rejection> + From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, T1, I> EndpointServiceFn<(((T1,), I), !), State> for F
where F: Fn(T1, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, I: FromRequest, ErrorResponse: From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, T1, T2, I> EndpointServiceFn<(((T1, T2), I), !), State> for F
where F: Fn(T1, T2, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, I: FromRequest, ErrorResponse: From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, T1, T2, T3, I> EndpointServiceFn<(((T1, T2, T3), I), !), State> for F
where F: Fn(T1, T2, T3, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, I: FromRequest, ErrorResponse: From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, T1, T2, T3, T4, I> EndpointServiceFn<(((T1, T2, T3, T4), I), !), State> for F
where F: Fn(T1, T2, T3, T4, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, I: FromRequest, ErrorResponse: From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, I> EndpointServiceFn<(((T1, T2, T3, T4, T5), I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, I: FromRequest, ErrorResponse: From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6), I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, I: FromRequest, ErrorResponse: From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6, T7, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7), I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, I: FromRequest, ErrorResponse: From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6, T7, T8, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8), I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, I: FromRequest, ErrorResponse: From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9), I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, I: FromRequest, ErrorResponse: From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10), I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, I: FromRequest, ErrorResponse: From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, I: FromRequest, ErrorResponse: From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection> + From<<T11 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>, T11: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, I> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12), I), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, I) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, I: FromRequest, ErrorResponse: From<<I as FromRequest>::Rejection> + From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection> + From<<T11 as FromPartsStateRefPair<State>>::Rejection> + From<<T12 as FromPartsStateRefPair<State>>::Rejection>, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>, T11: FromPartsStateRefPair<State>, T12: FromPartsStateRefPair<State>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12), ()), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>, T11: FromPartsStateRefPair<State>, T12: FromPartsStateRefPair<State>, ErrorResponse: From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection> + From<<T11 as FromPartsStateRefPair<State>>::Rejection> + From<<T12 as FromPartsStateRefPair<State>>::Rejection>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), ()), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>, T11: FromPartsStateRefPair<State>, ErrorResponse: From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection> + From<<T11 as FromPartsStateRefPair<State>>::Rejection>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9, T10), ()), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, T10: FromPartsStateRefPair<State>, ErrorResponse: From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection> + From<<T10 as FromPartsStateRefPair<State>>::Rejection>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6, T7, T8, T9> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8, T9), ()), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8, T9) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, T9: FromPartsStateRefPair<State>, ErrorResponse: From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection> + From<<T9 as FromPartsStateRefPair<State>>::Rejection>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6, T7, T8> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7, T8), ()), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7, T8) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, T8: FromPartsStateRefPair<State>, ErrorResponse: From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection> + From<<T8 as FromPartsStateRefPair<State>>::Rejection>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6, T7> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6, T7), ()), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6, T7) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, T7: FromPartsStateRefPair<State>, ErrorResponse: From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection> + From<<T7 as FromPartsStateRefPair<State>>::Rejection>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5, T6> EndpointServiceFn<(((T1, T2, T3, T4, T5, T6), ()), !), State> for F
where F: Fn(T1, T2, T3, T4, T5, T6) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, T6: FromPartsStateRefPair<State>, ErrorResponse: From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection> + From<<T6 as FromPartsStateRefPair<State>>::Rejection>,

§

impl<F, R, O, State, T1, T2, T3, T4, T5> EndpointServiceFn<(((T1, T2, T3, T4, T5), ()), !), State> for F
where F: Fn(T1, T2, T3, T4, T5) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, T5: FromPartsStateRefPair<State>, ErrorResponse: From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection> + From<<T5 as FromPartsStateRefPair<State>>::Rejection>,

§

impl<F, R, O, State, T1, T2, T3, T4> EndpointServiceFn<(((T1, T2, T3, T4), ()), !), State> for F
where F: Fn(T1, T2, T3, T4) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, T4: FromPartsStateRefPair<State>, ErrorResponse: From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection> + From<<T4 as FromPartsStateRefPair<State>>::Rejection>,

§

impl<F, R, O, State, T1, T2, T3> EndpointServiceFn<(((T1, T2, T3), ()), !), State> for F
where F: Fn(T1, T2, T3) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, T3: FromPartsStateRefPair<State>, ErrorResponse: From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection> + From<<T3 as FromPartsStateRefPair<State>>::Rejection>,

§

impl<F, R, O, State, T1, T2> EndpointServiceFn<(((T1, T2), ()), !), State> for F
where F: Fn(T1, T2) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, T2: FromPartsStateRefPair<State>, ErrorResponse: From<<T1 as FromPartsStateRefPair<State>>::Rejection> + From<<T2 as FromPartsStateRefPair<State>>::Rejection>,

§

impl<F, R, O, State, T1> EndpointServiceFn<(((T1,), ()), !), State> for F
where F: Fn(T1) -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static, T1: FromPartsStateRefPair<State>, ErrorResponse: From<<T1 as FromPartsStateRefPair<State>>::Rejection>,

§

impl<F, R, O, State> EndpointServiceFn<(((), ()), !), State> for F
where F: Fn() -> R + Clone + Send + Sync + 'static, R: Future<Output = O> + Send + 'static, O: IntoResponse + Send + 'static, State: Send + Sync + 'static,