pub trait Handler<T, S>: Sized {
    // Required method
    fn call(
        self,
        cx: &mut HttpContext,
        req: Incoming,
        state: &S
    ) -> impl Future<Output = Response> + Send;

    // Provided method
    fn with_state(self, state: S) -> HandlerService<Self, S, T>
       where S: Clone { ... }
}

Required Methods§

source

fn call( self, cx: &mut HttpContext, req: Incoming, state: &S ) -> impl Future<Output = Response> + Send

Provided Methods§

source

fn with_state(self, state: S) -> HandlerService<Self, S, T>
where S: Clone,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<F, Fut, Res, M, S, T1> Handler<(M, T1), S> for F
where F: FnOnce(T1) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2> Handler<(M, T1, T2), S> for F
where F: FnOnce(T1, T2) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3> Handler<(M, T1, T2, T3), S> for F
where F: FnOnce(T1, T2, T3) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3, T4> Handler<(M, T1, T2, T3, T4), S> for F
where F: FnOnce(T1, T2, T3, T4) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromContext<S> + Send + 'r, for<'r> T4: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3, T4, T5> Handler<(M, T1, T2, T3, T4, T5), S> for F
where F: FnOnce(T1, T2, T3, T4, T5) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromContext<S> + Send + 'r, for<'r> T4: FromContext<S> + Send + 'r, for<'r> T5: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3, T4, T5, T6> Handler<(M, T1, T2, T3, T4, T5, T6), S> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromContext<S> + Send + 'r, for<'r> T4: FromContext<S> + Send + 'r, for<'r> T5: FromContext<S> + Send + 'r, for<'r> T6: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3, T4, T5, T6, T7> Handler<(M, T1, T2, T3, T4, T5, T6, T7), S> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromContext<S> + Send + 'r, for<'r> T4: FromContext<S> + Send + 'r, for<'r> T5: FromContext<S> + Send + 'r, for<'r> T6: FromContext<S> + Send + 'r, for<'r> T7: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3, T4, T5, T6, T7, T8> Handler<(M, T1, T2, T3, T4, T5, T6, T7, T8), S> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromContext<S> + Send + 'r, for<'r> T4: FromContext<S> + Send + 'r, for<'r> T5: FromContext<S> + Send + 'r, for<'r> T6: FromContext<S> + Send + 'r, for<'r> T7: FromContext<S> + Send + 'r, for<'r> T8: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3, T4, T5, T6, T7, T8, T9> Handler<(M, T1, T2, T3, T4, T5, T6, T7, T8, T9), S> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromContext<S> + Send + 'r, for<'r> T4: FromContext<S> + Send + 'r, for<'r> T5: FromContext<S> + Send + 'r, for<'r> T6: FromContext<S> + Send + 'r, for<'r> T7: FromContext<S> + Send + 'r, for<'r> T8: FromContext<S> + Send + 'r, for<'r> T9: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Handler<(M, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10), S> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromContext<S> + Send + 'r, for<'r> T4: FromContext<S> + Send + 'r, for<'r> T5: FromContext<S> + Send + 'r, for<'r> T6: FromContext<S> + Send + 'r, for<'r> T7: FromContext<S> + Send + 'r, for<'r> T8: FromContext<S> + Send + 'r, for<'r> T9: FromContext<S> + Send + 'r, for<'r> T10: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Handler<(M, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), S> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromContext<S> + Send + 'r, for<'r> T4: FromContext<S> + Send + 'r, for<'r> T5: FromContext<S> + Send + 'r, for<'r> T6: FromContext<S> + Send + 'r, for<'r> T7: FromContext<S> + Send + 'r, for<'r> T8: FromContext<S> + Send + 'r, for<'r> T9: FromContext<S> + Send + 'r, for<'r> T10: FromContext<S> + Send + 'r, for<'r> T11: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Handler<(M, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12), S> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromContext<S> + Send + 'r, for<'r> T4: FromContext<S> + Send + 'r, for<'r> T5: FromContext<S> + Send + 'r, for<'r> T6: FromContext<S> + Send + 'r, for<'r> T7: FromContext<S> + Send + 'r, for<'r> T8: FromContext<S> + Send + 'r, for<'r> T9: FromContext<S> + Send + 'r, for<'r> T10: FromContext<S> + Send + 'r, for<'r> T11: FromContext<S> + Send + 'r, for<'r> T12: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Handler<(M, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13), S> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromContext<S> + Send + 'r, for<'r> T4: FromContext<S> + Send + 'r, for<'r> T5: FromContext<S> + Send + 'r, for<'r> T6: FromContext<S> + Send + 'r, for<'r> T7: FromContext<S> + Send + 'r, for<'r> T8: FromContext<S> + Send + 'r, for<'r> T9: FromContext<S> + Send + 'r, for<'r> T10: FromContext<S> + Send + 'r, for<'r> T11: FromContext<S> + Send + 'r, for<'r> T12: FromContext<S> + Send + 'r, for<'r> T13: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Handler<(M, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14), S> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromContext<S> + Send + 'r, for<'r> T4: FromContext<S> + Send + 'r, for<'r> T5: FromContext<S> + Send + 'r, for<'r> T6: FromContext<S> + Send + 'r, for<'r> T7: FromContext<S> + Send + 'r, for<'r> T8: FromContext<S> + Send + 'r, for<'r> T9: FromContext<S> + Send + 'r, for<'r> T10: FromContext<S> + Send + 'r, for<'r> T11: FromContext<S> + Send + 'r, for<'r> T12: FromContext<S> + Send + 'r, for<'r> T13: FromContext<S> + Send + 'r, for<'r> T14: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Handler<(M, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15), S> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromContext<S> + Send + 'r, for<'r> T4: FromContext<S> + Send + 'r, for<'r> T5: FromContext<S> + Send + 'r, for<'r> T6: FromContext<S> + Send + 'r, for<'r> T7: FromContext<S> + Send + 'r, for<'r> T8: FromContext<S> + Send + 'r, for<'r> T9: FromContext<S> + Send + 'r, for<'r> T10: FromContext<S> + Send + 'r, for<'r> T11: FromContext<S> + Send + 'r, for<'r> T12: FromContext<S> + Send + 'r, for<'r> T13: FromContext<S> + Send + 'r, for<'r> T14: FromContext<S> + Send + 'r, for<'r> T15: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, M, S, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Handler<(M, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16), S> for F
where F: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16) -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync, for<'r> T1: FromContext<S> + Send + 'r, for<'r> T2: FromContext<S> + Send + 'r, for<'r> T3: FromContext<S> + Send + 'r, for<'r> T4: FromContext<S> + Send + 'r, for<'r> T5: FromContext<S> + Send + 'r, for<'r> T6: FromContext<S> + Send + 'r, for<'r> T7: FromContext<S> + Send + 'r, for<'r> T8: FromContext<S> + Send + 'r, for<'r> T9: FromContext<S> + Send + 'r, for<'r> T10: FromContext<S> + Send + 'r, for<'r> T11: FromContext<S> + Send + 'r, for<'r> T12: FromContext<S> + Send + 'r, for<'r> T13: FromContext<S> + Send + 'r, for<'r> T14: FromContext<S> + Send + 'r, for<'r> T15: FromContext<S> + Send + 'r, for<'r> T16: FromRequest<S, M> + Send + 'r,

source§

impl<F, Fut, Res, S> Handler<((),), S> for F
where F: FnOnce() -> Fut + Clone + Send, Fut: Future<Output = Res> + Send, Res: IntoResponse, S: Send + Sync,