Handler

Trait Handler 

Source
pub trait Handler<I, O, Args>:
    Send
    + Sync
    + 'static {
    // Required method
    fn call(&self, ctx: Context<I>) -> impl Future<Output = O> + Send;
}
Expand description

A trait for functions that can be used as pipeline steps.

Required Methods§

Source

fn call(&self, ctx: Context<I>) -> impl Future<Output = O> + Send

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

Source§

impl<F, I, O, Fut, I1, I2> Handler<I, O, (I1, I2)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3> Handler<I, O, (I1, I2, I3)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3, I4> Handler<I, O, (I1, I2, I3, I4)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3, I4) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>, I4: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3, I4, I5> Handler<I, O, (I1, I2, I3, I4, I5)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3, I4, I5) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>, I4: FromContext<I>, I5: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3, I4, I5, I6> Handler<I, O, (I1, I2, I3, I4, I5, I6)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3, I4, I5, I6) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>, I4: FromContext<I>, I5: FromContext<I>, I6: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3, I4, I5, I6, I7> Handler<I, O, (I1, I2, I3, I4, I5, I6, I7)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3, I4, I5, I6, I7) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>, I4: FromContext<I>, I5: FromContext<I>, I6: FromContext<I>, I7: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3, I4, I5, I6, I7, I8> Handler<I, O, (I1, I2, I3, I4, I5, I6, I7, I8)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3, I4, I5, I6, I7, I8) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>, I4: FromContext<I>, I5: FromContext<I>, I6: FromContext<I>, I7: FromContext<I>, I8: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3, I4, I5, I6, I7, I8, I9> Handler<I, O, (I1, I2, I3, I4, I5, I6, I7, I8, I9)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3, I4, I5, I6, I7, I8, I9) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>, I4: FromContext<I>, I5: FromContext<I>, I6: FromContext<I>, I7: FromContext<I>, I8: FromContext<I>, I9: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10> Handler<I, O, (I1, I2, I3, I4, I5, I6, I7, I8, I9, I10)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3, I4, I5, I6, I7, I8, I9, I10) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>, I4: FromContext<I>, I5: FromContext<I>, I6: FromContext<I>, I7: FromContext<I>, I8: FromContext<I>, I9: FromContext<I>, I10: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11> Handler<I, O, (I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>, I4: FromContext<I>, I5: FromContext<I>, I6: FromContext<I>, I7: FromContext<I>, I8: FromContext<I>, I9: FromContext<I>, I10: FromContext<I>, I11: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12> Handler<I, O, (I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>, I4: FromContext<I>, I5: FromContext<I>, I6: FromContext<I>, I7: FromContext<I>, I8: FromContext<I>, I9: FromContext<I>, I10: FromContext<I>, I11: FromContext<I>, I12: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13> Handler<I, O, (I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>, I4: FromContext<I>, I5: FromContext<I>, I6: FromContext<I>, I7: FromContext<I>, I8: FromContext<I>, I9: FromContext<I>, I10: FromContext<I>, I11: FromContext<I>, I12: FromContext<I>, I13: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14> Handler<I, O, (I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>, I4: FromContext<I>, I5: FromContext<I>, I6: FromContext<I>, I7: FromContext<I>, I8: FromContext<I>, I9: FromContext<I>, I10: FromContext<I>, I11: FromContext<I>, I12: FromContext<I>, I13: FromContext<I>, I14: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15> Handler<I, O, (I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>, I4: FromContext<I>, I5: FromContext<I>, I6: FromContext<I>, I7: FromContext<I>, I8: FromContext<I>, I9: FromContext<I>, I10: FromContext<I>, I11: FromContext<I>, I12: FromContext<I>, I13: FromContext<I>, I14: FromContext<I>, I15: FromContext<I>,

Source§

impl<F, I, O, Fut, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16> Handler<I, O, (I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16)> for F
where I: Clone + Send + Sync + 'static, O: Send + 'static, F: Fn(I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16) -> Fut + Send + Sync + 'static, Fut: Future<Output = O> + Send, I1: FromContext<I>, I2: FromContext<I>, I3: FromContext<I>, I4: FromContext<I>, I5: FromContext<I>, I6: FromContext<I>, I7: FromContext<I>, I8: FromContext<I>, I9: FromContext<I>, I10: FromContext<I>, I11: FromContext<I>, I12: FromContext<I>, I13: FromContext<I>, I14: FromContext<I>, I15: FromContext<I>, I16: FromContext<I>,

Source§

impl<I, I2> Handler<I2, I, (Input<I2>,)> for LiftHandler<I, I2>
where I: From<I2> + Send + Sync + 'static, I2: Clone + Send + Sync + 'static,

Source§

impl<P, I, O> Handler<I, O, ()> for P
where P: Pipeline<I, O>, I: Clone + Send + Sync + 'static, O: Send + 'static,