Class PipelineBuilderExtensions
- Namespace
- Executables.Pipelines
- Assembly
- executables.dll
Extension methods for building pipelines.
public static class PipelineBuilderExtensions
- Inheritance
-
PipelineBuilderExtensions
- Inherited Members
Methods
End<T1, T2, T3, T4>(PipelineBuilder<T1, T2, T3, T4>, IExecutable<T2, T3>)
Finalizes pipeline composition with a terminal executable.
[Pure]
public static IExecutor<T1, T4> End<T1, T2, T3, T4>(this PipelineBuilder<T1, T2, T3, T4> builder, IExecutable<T2, T3> executable)
Parameters
builderPipelineBuilder<T1, T2, T3, T4>Builder being finalized.
executableIExecutable<T2, T3>Terminal executable invoked when pipeline reaches the end.
Returns
- IExecutor<T1, T4>
Composed executor that represents the entire pipeline chain.
Type Parameters
T1Input type of the final composed executor.
T2Input type expected by current downstream segment.
T3Output type produced by current downstream segment.
T4Output type of the final composed executor.
Exceptions
- ArgumentNullException
executableis null.
Use<T1, T2>(PipelineBuilder<T1, Unit, Unit, T2>, Action<Action>)
Appends middleware step to a parameterless continuation chain.
public static PipelineBuilder<T1, Unit, Unit, T2> Use<T1, T2>(this PipelineBuilder<T1, Unit, Unit, T2> builder, Action<Action> middleware)
Parameters
builderPipelineBuilder<T1, Unit, Unit, T2>Builder being extended.
middlewareAction<Action>Middleware action with parameterless downstream action access.
Returns
- PipelineBuilder<T1, Unit, Unit, T2>
Builder with downstream input/output fixed to Unit.
Type Parameters
T1Input type of the final composed executor.
T2Output type of the final composed executor.
Use<T1, T2, T3>(PipelineBuilder<T1, Unit, Unit, T3>, Action<Action<T2>>)
Appends middleware step to a parameterless chain as action with downstream typed action.
public static PipelineBuilder<T1, T2, Unit, T3> Use<T1, T2, T3>(this PipelineBuilder<T1, Unit, Unit, T3> builder, Action<Action<T2>> middleware)
Parameters
builderPipelineBuilder<T1, Unit, Unit, T3>Builder being extended.
middlewareAction<Action<T2>>Middleware action with downstream typed action access.
Returns
- PipelineBuilder<T1, T2, Unit, T3>
Builder with downstream output fixed to Unit.
Type Parameters
T1Input type of the final composed executor.
T2Input type of downstream action.
T3Output type of the final composed executor.
Use<T1, T2, T3>(PipelineBuilder<T1, Unit, Unit, T3>, Action<Func<T2>>)
Appends middleware step to a parameterless chain as action with downstream parameterless function.
public static PipelineBuilder<T1, Unit, T2, T3> Use<T1, T2, T3>(this PipelineBuilder<T1, Unit, Unit, T3> builder, Action<Func<T2>> middleware)
Parameters
builderPipelineBuilder<T1, Unit, Unit, T3>Builder being extended.
middlewareAction<Func<T2>>Middleware action with downstream parameterless function access.
Returns
- PipelineBuilder<T1, Unit, T2, T3>
Builder with downstream input fixed to Unit.
Type Parameters
T1Input type of the final composed executor.
T2Output type of downstream parameterless function.
T3Output type of the final composed executor.
Use<T1, T2, T3>(PipelineBuilder<T1, Unit, T2, T3>, Func<Action, T2>)
Appends middleware step to a parameterless chain as function with downstream parameterless action.
public static PipelineBuilder<T1, Unit, Unit, T3> Use<T1, T2, T3>(this PipelineBuilder<T1, Unit, T2, T3> builder, Func<Action, T2> middleware)
Parameters
builderPipelineBuilder<T1, Unit, T2, T3>Builder being extended.
middlewareFunc<Action, T2>Middleware delegate with downstream parameterless action access.
Returns
- PipelineBuilder<T1, Unit, Unit, T3>
Builder with downstream input/output fixed to Unit.
Type Parameters
T1Input type of the final composed executor.
T2Output type produced by current step.
T3Output type of the final composed executor.
Use<T1, T2, T3>(PipelineBuilder<T1, T2, Unit, T3>, Action<T2, Action>)
Appends middleware step expressed as action with no args.
public static PipelineBuilder<T1, Unit, Unit, T3> Use<T1, T2, T3>(this PipelineBuilder<T1, T2, Unit, T3> builder, Action<T2, Action> middleware)
Parameters
builderPipelineBuilder<T1, T2, Unit, T3>Builder being extended.
middlewareAction<T2, Action>Middleware action with parameterless downstream action access.
Returns
- PipelineBuilder<T1, Unit, Unit, T3>
Builder with downstream input/output fixed to Unit.
Type Parameters
T1Input type of the final composed executor.
T2Input type accepted by current step.
T3Output type of the final composed executor.
Use<T1, T2, T3, T4>(PipelineBuilder<T1, Unit, Unit, T4>, Action<Func<T2, T3>>)
Appends middleware step to a parameterless chain as action with downstream function.
public static PipelineBuilder<T1, T2, T3, T4> Use<T1, T2, T3, T4>(this PipelineBuilder<T1, Unit, Unit, T4> builder, Action<Func<T2, T3>> middleware)
Parameters
builderPipelineBuilder<T1, Unit, Unit, T4>Builder being extended.
middlewareAction<Func<T2, T3>>Middleware action with downstream function access.
Returns
- PipelineBuilder<T1, T2, T3, T4>
Builder with updated downstream type pair
T2/T3.
Type Parameters
T1Input type of the final composed executor.
T2Input type of downstream function.
T3Output type of downstream function.
T4Output type of the final composed executor.
Use<T1, T2, T3, T4>(PipelineBuilder<T1, Unit, T2, T4>, Func<Action<T3>, T2>)
Appends middleware step to a parameterless chain as function with downstream action.
public static PipelineBuilder<T1, T3, Unit, T4> Use<T1, T2, T3, T4>(this PipelineBuilder<T1, Unit, T2, T4> builder, Func<Action<T3>, T2> middleware)
Parameters
builderPipelineBuilder<T1, Unit, T2, T4>Builder being extended.
middlewareFunc<Action<T3>, T2>Middleware delegate with downstream action access.
Returns
- PipelineBuilder<T1, T3, Unit, T4>
Builder with downstream output fixed to Unit.
Type Parameters
T1Input type of the final composed executor.
T2Output type produced by current step.
T3Input type of downstream action.
T4Output type of the final composed executor.
Use<T1, T2, T3, T4>(PipelineBuilder<T1, Unit, T2, T4>, Func<Func<T3>, T2>)
Appends middleware step to a parameterless chain as function with downstream parameterless function.
public static PipelineBuilder<T1, Unit, T3, T4> Use<T1, T2, T3, T4>(this PipelineBuilder<T1, Unit, T2, T4> builder, Func<Func<T3>, T2> middleware)
Parameters
builderPipelineBuilder<T1, Unit, T2, T4>Builder being extended.
middlewareFunc<Func<T3>, T2>Middleware delegate with downstream parameterless function access.
Returns
- PipelineBuilder<T1, Unit, T3, T4>
Builder with downstream input fixed to Unit.
Type Parameters
T1Input type of the final composed executor.
T2Output type produced by current step.
T3Output type of downstream parameterless function.
T4Output type of the final composed executor.
Use<T1, T2, T3, T4>(PipelineBuilder<T1, T2, Unit, T4>, Action<T2, Action<T3>>)
Appends middleware step expressed as action with next action.
public static PipelineBuilder<T1, T3, Unit, T4> Use<T1, T2, T3, T4>(this PipelineBuilder<T1, T2, Unit, T4> builder, Action<T2, Action<T3>> middleware)
Parameters
builderPipelineBuilder<T1, T2, Unit, T4>Builder being extended.
middlewareAction<T2, Action<T3>>Middleware action with downstream typed action access.
Returns
- PipelineBuilder<T1, T3, Unit, T4>
Builder with downstream output fixed to Unit.
Type Parameters
T1Input type of the final composed executor.
T2Input type accepted by current step.
T3Input type of downstream action.
T4Output type of the final composed executor.
Use<T1, T2, T3, T4>(PipelineBuilder<T1, T2, Unit, T4>, Action<T2, Func<T3>>)
Appends middleware step expressed as action with downstream parameterless function.
public static PipelineBuilder<T1, Unit, T3, T4> Use<T1, T2, T3, T4>(this PipelineBuilder<T1, T2, Unit, T4> builder, Action<T2, Func<T3>> middleware)
Parameters
builderPipelineBuilder<T1, T2, Unit, T4>Builder being extended.
middlewareAction<T2, Func<T3>>Middleware action with downstream parameterless function access.
Returns
- PipelineBuilder<T1, Unit, T3, T4>
Builder with downstream input fixed to Unit.
Type Parameters
T1Input type of the final composed executor.
T2Input type accepted by current step.
T3Output type of downstream parameterless function.
T4Output type of the final composed executor.
Use<T1, T2, T3, T4>(PipelineBuilder<T1, T2, T3, T4>, Func<T2, Action, T3>)
Appends middleware step expressed as function with no args.
public static PipelineBuilder<T1, Unit, Unit, T4> Use<T1, T2, T3, T4>(this PipelineBuilder<T1, T2, T3, T4> builder, Func<T2, Action, T3> middleware)
Parameters
builderPipelineBuilder<T1, T2, T3, T4>Builder being extended.
middlewareFunc<T2, Action, T3>Middleware delegate with parameterless downstream action access.
Returns
- PipelineBuilder<T1, Unit, Unit, T4>
Builder with downstream input/output fixed to Unit.
Type Parameters
T1Input type of the final composed executor.
T2Input type accepted by current step.
T3Output type produced by current step.
T4Output type of the final composed executor.
Use<T1, T2, T3, T4, T5>(PipelineBuilder<T1, Unit, T2, T5>, Func<Func<T3, T4>, T2>)
Appends middleware step to a parameterless chain as function with downstream function.
public static PipelineBuilder<T1, T3, T4, T5> Use<T1, T2, T3, T4, T5>(this PipelineBuilder<T1, Unit, T2, T5> builder, Func<Func<T3, T4>, T2> middleware)
Parameters
builderPipelineBuilder<T1, Unit, T2, T5>Builder being extended.
middlewareFunc<Func<T3, T4>, T2>Middleware delegate with downstream function access.
Returns
- PipelineBuilder<T1, T3, T4, T5>
Builder with updated downstream type pair
T3/T4.
Type Parameters
T1Input type of the final composed executor.
T2Output type produced by current step.
T3Input type of downstream function.
T4Output type of downstream function.
T5Output type of the final composed executor.
Use<T1, T2, T3, T4, T5>(PipelineBuilder<T1, T2, Unit, T5>, Action<T2, Func<T3, T4>>)
Appends middleware step expressed as action with next func.
public static PipelineBuilder<T1, T3, T4, T5> Use<T1, T2, T3, T4, T5>(this PipelineBuilder<T1, T2, Unit, T5> builder, Action<T2, Func<T3, T4>> middleware)
Parameters
builderPipelineBuilder<T1, T2, Unit, T5>Builder being extended.
middlewareAction<T2, Func<T3, T4>>Middleware action with downstream function access.
Returns
- PipelineBuilder<T1, T3, T4, T5>
Builder with updated downstream type pair
T3/T4.
Type Parameters
T1Input type of the final composed executor.
T2Input type accepted by current step.
T3Input type of downstream function.
T4Output type of downstream function.
T5Output type of the final composed executor.
Use<T1, T2, T3, T4, T5>(PipelineBuilder<T1, T2, T4, T5>, Func<T2, Action<T3>, T4>)
Appends middleware step expressed as function with next action.
public static PipelineBuilder<T1, T3, Unit, T5> Use<T1, T2, T3, T4, T5>(this PipelineBuilder<T1, T2, T4, T5> builder, Func<T2, Action<T3>, T4> middleware)
Parameters
builderPipelineBuilder<T1, T2, T4, T5>Builder being extended.
middlewareFunc<T2, Action<T3>, T4>Middleware delegate with downstream action access.
Returns
- PipelineBuilder<T1, T3, Unit, T5>
Builder with downstream output fixed to Unit.
Type Parameters
T1Input type of the final composed executor.
T2Input type accepted by current step.
T3Input type of downstream action.
T4Output type produced by current step.
T5Output type of the final composed executor.
Use<T1, T2, T3, T4, T5>(PipelineBuilder<T1, T2, T4, T5>, Func<T2, Func<T3>, T4>)
Appends middleware step expressed as function with downstream parameterless function.
public static PipelineBuilder<T1, Unit, T3, T5> Use<T1, T2, T3, T4, T5>(this PipelineBuilder<T1, T2, T4, T5> builder, Func<T2, Func<T3>, T4> middleware)
Parameters
builderPipelineBuilder<T1, T2, T4, T5>Builder being extended.
middlewareFunc<T2, Func<T3>, T4>Middleware delegate with downstream parameterless function access.
Returns
- PipelineBuilder<T1, Unit, T3, T5>
Builder with downstream input fixed to Unit.
Type Parameters
T1Input type of the final composed executor.
T2Input type accepted by current step.
T3Output type of downstream parameterless function.
T4Output type produced by current step.
T5Output type of the final composed executor.
Use<T1, T2, T3, T4, T5, T6>(PipelineBuilder<T1, T2, T5, T6>, Func<T2, Func<T3, T4>, T5>)
Appends middleware step expressed as function with next func.
public static PipelineBuilder<T1, T3, T4, T6> Use<T1, T2, T3, T4, T5, T6>(this PipelineBuilder<T1, T2, T5, T6> builder, Func<T2, Func<T3, T4>, T5> middleware)
Parameters
builderPipelineBuilder<T1, T2, T5, T6>Builder being extended.
middlewareFunc<T2, Func<T3, T4>, T5>Middleware delegate with downstream function access.
Returns
- PipelineBuilder<T1, T3, T4, T6>
Builder with updated downstream type pair
T3/T4.
Type Parameters
T1Input type of the final composed executor.
T2Input type accepted by current step.
T3Input type of downstream function.
T4Output type of downstream function.
T5Output type produced by current step.
T6Output type of the final composed executor.