FnExt

Trait FnExt 

Source
pub trait FnExt<I, E>:
    Send
    + Sync
    + 'static {
    type Output;

    // Required method
    fn call(&self, i: I) -> impl Future<Output = Self::Output> + Send;
}
Expand description

A handler with extractors.

Required Associated Types§

Source

type Output

The returned type after the call operator is used.

Required Methods§

Source

fn call(&self, i: I) -> impl Future<Output = Self::Output> + Send

Performs the call operation.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L, Fun, Fut, Out> FnExt<Request<Body>, (A, B, C, D, E, F, G, H, I, J, K, L)> for Fun
where A: FromRequest + Send, B: FromRequest + Send, C: FromRequest + Send, D: FromRequest + Send, E: FromRequest + Send, F: FromRequest + Send, G: FromRequest + Send, H: FromRequest + Send, I: FromRequest + Send, J: FromRequest + Send, K: FromRequest + Send, L: FromRequest + Send, A::Error: IntoResponse + Send, B::Error: IntoResponse + Send, C::Error: IntoResponse + Send, D::Error: IntoResponse + Send, E::Error: IntoResponse + Send, F::Error: IntoResponse + Send, G::Error: IntoResponse + Send, H::Error: IntoResponse + Send, I::Error: IntoResponse + Send, J::Error: IntoResponse + Send, K::Error: IntoResponse + Send, L::Error: IntoResponse + Send, Fun: Fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Out>> + Send,

Source§

type Output = <Fut as Future>::Output

Source§

impl<B, C, D, E, F, G, H, I, J, K, L, Fun, Fut, Out> FnExt<Request<Body>, (B, C, D, E, F, G, H, I, J, K, L)> for Fun
where B: FromRequest + Send, C: FromRequest + Send, D: FromRequest + Send, E: FromRequest + Send, F: FromRequest + Send, G: FromRequest + Send, H: FromRequest + Send, I: FromRequest + Send, J: FromRequest + Send, K: FromRequest + Send, L: FromRequest + Send, B::Error: IntoResponse + Send, C::Error: IntoResponse + Send, D::Error: IntoResponse + Send, E::Error: IntoResponse + Send, F::Error: IntoResponse + Send, G::Error: IntoResponse + Send, H::Error: IntoResponse + Send, I::Error: IntoResponse + Send, J::Error: IntoResponse + Send, K::Error: IntoResponse + Send, L::Error: IntoResponse + Send, Fun: Fn(B, C, D, E, F, G, H, I, J, K, L) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Out>> + Send,

Source§

type Output = <Fut as Future>::Output

Source§

impl<C, D, E, F, G, H, I, J, K, L, Fun, Fut, Out> FnExt<Request<Body>, (C, D, E, F, G, H, I, J, K, L)> for Fun
where C: FromRequest + Send, D: FromRequest + Send, E: FromRequest + Send, F: FromRequest + Send, G: FromRequest + Send, H: FromRequest + Send, I: FromRequest + Send, J: FromRequest + Send, K: FromRequest + Send, L: FromRequest + Send, C::Error: IntoResponse + Send, D::Error: IntoResponse + Send, E::Error: IntoResponse + Send, F::Error: IntoResponse + Send, G::Error: IntoResponse + Send, H::Error: IntoResponse + Send, I::Error: IntoResponse + Send, J::Error: IntoResponse + Send, K::Error: IntoResponse + Send, L::Error: IntoResponse + Send, Fun: Fn(C, D, E, F, G, H, I, J, K, L) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Out>> + Send,

Source§

type Output = <Fut as Future>::Output

Source§

impl<D, E, F, G, H, I, J, K, L, Fun, Fut, Out> FnExt<Request<Body>, (D, E, F, G, H, I, J, K, L)> for Fun
where D: FromRequest + Send, E: FromRequest + Send, F: FromRequest + Send, G: FromRequest + Send, H: FromRequest + Send, I: FromRequest + Send, J: FromRequest + Send, K: FromRequest + Send, L: FromRequest + Send, D::Error: IntoResponse + Send, E::Error: IntoResponse + Send, F::Error: IntoResponse + Send, G::Error: IntoResponse + Send, H::Error: IntoResponse + Send, I::Error: IntoResponse + Send, J::Error: IntoResponse + Send, K::Error: IntoResponse + Send, L::Error: IntoResponse + Send, Fun: Fn(D, E, F, G, H, I, J, K, L) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Out>> + Send,

Source§

type Output = <Fut as Future>::Output

Source§

impl<E, F, G, H, I, J, K, L, Fun, Fut, Out> FnExt<Request<Body>, (E, F, G, H, I, J, K, L)> for Fun
where E: FromRequest + Send, F: FromRequest + Send, G: FromRequest + Send, H: FromRequest + Send, I: FromRequest + Send, J: FromRequest + Send, K: FromRequest + Send, L: FromRequest + Send, E::Error: IntoResponse + Send, F::Error: IntoResponse + Send, G::Error: IntoResponse + Send, H::Error: IntoResponse + Send, I::Error: IntoResponse + Send, J::Error: IntoResponse + Send, K::Error: IntoResponse + Send, L::Error: IntoResponse + Send, Fun: Fn(E, F, G, H, I, J, K, L) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Out>> + Send,

Source§

type Output = <Fut as Future>::Output

Source§

impl<F, G, H, I, J, K, L, Fun, Fut, Out> FnExt<Request<Body>, (F, G, H, I, J, K, L)> for Fun
where F: FromRequest + Send, G: FromRequest + Send, H: FromRequest + Send, I: FromRequest + Send, J: FromRequest + Send, K: FromRequest + Send, L: FromRequest + Send, F::Error: IntoResponse + Send, G::Error: IntoResponse + Send, H::Error: IntoResponse + Send, I::Error: IntoResponse + Send, J::Error: IntoResponse + Send, K::Error: IntoResponse + Send, L::Error: IntoResponse + Send, Fun: Fn(F, G, H, I, J, K, L) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Out>> + Send,

Source§

type Output = <Fut as Future>::Output

Source§

impl<Fun, Fut, Out> FnExt<Request<Body>, ()> for Fun
where Fun: Fn() -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Out>> + Send,

Source§

type Output = <Fut as Future>::Output

Source§

impl<G, H, I, J, K, L, Fun, Fut, Out> FnExt<Request<Body>, (G, H, I, J, K, L)> for Fun
where G: FromRequest + Send, H: FromRequest + Send, I: FromRequest + Send, J: FromRequest + Send, K: FromRequest + Send, L: FromRequest + Send, G::Error: IntoResponse + Send, H::Error: IntoResponse + Send, I::Error: IntoResponse + Send, J::Error: IntoResponse + Send, K::Error: IntoResponse + Send, L::Error: IntoResponse + Send, Fun: Fn(G, H, I, J, K, L) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Out>> + Send,

Source§

type Output = <Fut as Future>::Output

Source§

impl<H, I, J, K, L, Fun, Fut, Out> FnExt<Request<Body>, (H, I, J, K, L)> for Fun
where H: FromRequest + Send, I: FromRequest + Send, J: FromRequest + Send, K: FromRequest + Send, L: FromRequest + Send, H::Error: IntoResponse + Send, I::Error: IntoResponse + Send, J::Error: IntoResponse + Send, K::Error: IntoResponse + Send, L::Error: IntoResponse + Send, Fun: Fn(H, I, J, K, L) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Out>> + Send,

Source§

type Output = <Fut as Future>::Output

Source§

impl<I, J, K, L, Fun, Fut, Out> FnExt<Request<Body>, (I, J, K, L)> for Fun
where I: FromRequest + Send, J: FromRequest + Send, K: FromRequest + Send, L: FromRequest + Send, I::Error: IntoResponse + Send, J::Error: IntoResponse + Send, K::Error: IntoResponse + Send, L::Error: IntoResponse + Send, Fun: Fn(I, J, K, L) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Out>> + Send,

Source§

type Output = <Fut as Future>::Output

Source§

impl<J, K, L, Fun, Fut, Out> FnExt<Request<Body>, (J, K, L)> for Fun
where J: FromRequest + Send, K: FromRequest + Send, L: FromRequest + Send, J::Error: IntoResponse + Send, K::Error: IntoResponse + Send, L::Error: IntoResponse + Send, Fun: Fn(J, K, L) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Out>> + Send,

Source§

type Output = <Fut as Future>::Output

Source§

impl<K, L, Fun, Fut, Out> FnExt<Request<Body>, (K, L)> for Fun
where K: FromRequest + Send, L: FromRequest + Send, K::Error: IntoResponse + Send, L::Error: IntoResponse + Send, Fun: Fn(K, L) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Out>> + Send,

Source§

type Output = <Fut as Future>::Output

Source§

impl<L, Fun, Fut, Out> FnExt<Request<Body>, (L,)> for Fun
where L: FromRequest + Send, L::Error: IntoResponse + Send, Fun: Fn(L) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<Out>> + Send,

Source§

type Output = <Fut as Future>::Output