Handler

Trait Handler 

Source
pub trait Handler<Args>:
    Clone
    + Send
    + Sized
    + 'static {
    // Required method
    fn call<'async_trait>(
        self,
        req: Request,
    ) -> Pin<Box<dyn Future<Output = Response> + Send + 'async_trait>>
       where Self: 'async_trait;

    // Provided method
    fn into_endpoint(self) -> IntoEndpoint<Self, Args> { ... }
}

Required Methods§

Source

fn call<'async_trait>( self, req: Request, ) -> Pin<Box<dyn Future<Output = Response> + Send + 'async_trait>>
where Self: 'async_trait,

Provided Methods§

Source

fn into_endpoint(self) -> IntoEndpoint<Self, Args>

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<F, Fut, Res> Handler<()> for F
where F: Fn() -> Fut + Clone + Send + Sync + 'static, Fut: Future<Output = Res> + Send + 'static, Res: IntoResponse + Send + 'static,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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