Skip to main content

Pipeline

Trait Pipeline 

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

Represents a pipeline unit that can be applied to a Context. Implementations are automatically provided for functions that match the signature.

Required Methods§

Source

fn apply(&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.

Implementations on Foreign Types§

Source§

impl<I, O, P1> Pipeline<I, Result<O, PipelineError>> for (P1,)
where I: Clone + Send + Sync + 'static, O: Send + 'static, P1: Pipeline<I, PResult<O>>,

Source§

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

Source§

impl<I, O, P1, P2> Pipeline<I, Result<O, PipelineError>> for (P1, P2)
where I: Clone + Send + Sync + 'static, O: Send + 'static, P1: Pipeline<I, PResult<O>>, P2: Pipeline<I, PResult<O>>,

Source§

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

Source§

impl<I, O, P1, P2, P3> Pipeline<I, Result<O, PipelineError>> for (P1, P2, P3)
where I: Clone + Send + Sync + 'static, O: Send + 'static, P1: Pipeline<I, PResult<O>>, P2: Pipeline<I, PResult<O>>, P3: Pipeline<I, PResult<O>>,

Source§

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

Source§

impl<I, O, P1, P2, P3, P4> Pipeline<I, Result<O, PipelineError>> for (P1, P2, P3, P4)
where I: Clone + Send + Sync + 'static, O: Send + 'static, P1: Pipeline<I, PResult<O>>, P2: Pipeline<I, PResult<O>>, P3: Pipeline<I, PResult<O>>, P4: Pipeline<I, PResult<O>>,

Source§

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

Source§

impl<I, O, P1, P2, P3, P4, P5> Pipeline<I, Result<O, PipelineError>> for (P1, P2, P3, P4, P5)
where I: Clone + Send + Sync + 'static, O: Send + 'static, P1: Pipeline<I, PResult<O>>, P2: Pipeline<I, PResult<O>>, P3: Pipeline<I, PResult<O>>, P4: Pipeline<I, PResult<O>>, P5: Pipeline<I, PResult<O>>,

Source§

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

Source§

impl<I, O, P1, P2, P3, P4, P5, P6> Pipeline<I, Result<O, PipelineError>> for (P1, P2, P3, P4, P5, P6)
where I: Clone + Send + Sync + 'static, O: Send + 'static, P1: Pipeline<I, PResult<O>>, P2: Pipeline<I, PResult<O>>, P3: Pipeline<I, PResult<O>>, P4: Pipeline<I, PResult<O>>, P5: Pipeline<I, PResult<O>>, P6: Pipeline<I, PResult<O>>,

Source§

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

Source§

impl<I, O, P1, P2, P3, P4, P5, P6, P7> Pipeline<I, Result<O, PipelineError>> for (P1, P2, P3, P4, P5, P6, P7)
where I: Clone + Send + Sync + 'static, O: Send + 'static, P1: Pipeline<I, PResult<O>>, P2: Pipeline<I, PResult<O>>, P3: Pipeline<I, PResult<O>>, P4: Pipeline<I, PResult<O>>, P5: Pipeline<I, PResult<O>>, P6: Pipeline<I, PResult<O>>, P7: Pipeline<I, PResult<O>>,

Source§

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

Source§

impl<I, O, P1, P2, P3, P4, P5, P6, P7, P8> Pipeline<I, Result<O, PipelineError>> for (P1, P2, P3, P4, P5, P6, P7, P8)
where I: Clone + Send + Sync + 'static, O: Send + 'static, P1: Pipeline<I, PResult<O>>, P2: Pipeline<I, PResult<O>>, P3: Pipeline<I, PResult<O>>, P4: Pipeline<I, PResult<O>>, P5: Pipeline<I, PResult<O>>, P6: Pipeline<I, PResult<O>>, P7: Pipeline<I, PResult<O>>, P8: Pipeline<I, PResult<O>>,

Source§

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

Implementors§

Source§

impl<F, G, I, O1, O2> Pipeline<I, O2> for Connect<F, G, I, O1, O2>
where F: Pipeline<I, O1>, G: Pipeline<O1, O2>, I: Clone + Send + Sync + 'static, O1: Send + Sync + 'static, O2: Send + Sync + 'static,

Source§

impl<F, P, I, O> Pipeline<I, Result<O, PipelineError>> for Cond<F, P, I, O>
where F: Pipeline<I, bool> + Send + Sync + 'static, P: Pipeline<I, O> + Send + Sync + 'static, I: Clone + Send + Sync + 'static, O: Send + 'static,

Source§

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

Source§

impl<P, F, I, O1, O2> Pipeline<I, O2> for Extend<P, F, I, O1, O2>
where P: Pipeline<I, O1>, F: Fn(O1) -> O2 + Send + Sync + 'static, I: Clone + Send + Sync + 'static, O1: Send + Sync + 'static, O2: Send + Sync + 'static,

Source§

impl<P, H, I2, I, O> Pipeline<I2, O> for Pullback<P, H, I2, I, O>
where P: Pipeline<I, O>, H: Pipeline<I2, I>, I2: Clone + Send + Sync + 'static, I: Send + Sync + 'static, O: Send + Sync + 'static,

Source§

impl<P, I> Pipeline<I, I> for Repeat<P, I>
where P: Pipeline<I, I>, I: Clone + Send + Sync + 'static,

Source§

impl<P, I, O> Pipeline<Vec<I>, Vec<O>> for Map<P, I, O>
where P: Pipeline<I, O> + Send + Sync + 'static, I: Clone + Send + Sync + 'static, O: Send + 'static,

Source§

impl<P, I, O> Pipeline<I, O> for Cache<P, I, O>
where P: Pipeline<I, O>, I: Hash + Eq + Clone + Send + Sync + 'static, O: Clone + Send + Sync + 'static,

Available on crate feature cache only.