Table of Contents

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

builder PipelineBuilder<T1, T2, T3, T4>

Builder being finalized.

executable IExecutable<T2, T3>

Terminal executable invoked when pipeline reaches the end.

Returns

IExecutor<T1, T4>

Composed executor that represents the entire pipeline chain.

Type Parameters

T1

Input type of the final composed executor.

T2

Input type expected by current downstream segment.

T3

Output type produced by current downstream segment.

T4

Output type of the final composed executor.

Exceptions

ArgumentNullException

executable is 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

builder PipelineBuilder<T1, Unit, Unit, T2>

Builder being extended.

middleware Action<Action>

Middleware action with parameterless downstream action access.

Returns

PipelineBuilder<T1, Unit, Unit, T2>

Builder with downstream input/output fixed to Unit.

Type Parameters

T1

Input type of the final composed executor.

T2

Output 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

builder PipelineBuilder<T1, Unit, Unit, T3>

Builder being extended.

middleware Action<Action<T2>>

Middleware action with downstream typed action access.

Returns

PipelineBuilder<T1, T2, Unit, T3>

Builder with downstream output fixed to Unit.

Type Parameters

T1

Input type of the final composed executor.

T2

Input type of downstream action.

T3

Output 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

builder PipelineBuilder<T1, Unit, Unit, T3>

Builder being extended.

middleware Action<Func<T2>>

Middleware action with downstream parameterless function access.

Returns

PipelineBuilder<T1, Unit, T2, T3>

Builder with downstream input fixed to Unit.

Type Parameters

T1

Input type of the final composed executor.

T2

Output type of downstream parameterless function.

T3

Output 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

builder PipelineBuilder<T1, Unit, T2, T3>

Builder being extended.

middleware Func<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

T1

Input type of the final composed executor.

T2

Output type produced by current step.

T3

Output 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

builder PipelineBuilder<T1, T2, Unit, T3>

Builder being extended.

middleware Action<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

T1

Input type of the final composed executor.

T2

Input type accepted by current step.

T3

Output 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

builder PipelineBuilder<T1, Unit, Unit, T4>

Builder being extended.

middleware Action<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

T1

Input type of the final composed executor.

T2

Input type of downstream function.

T3

Output type of downstream function.

T4

Output 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

builder PipelineBuilder<T1, Unit, T2, T4>

Builder being extended.

middleware Func<Action<T3>, T2>

Middleware delegate with downstream action access.

Returns

PipelineBuilder<T1, T3, Unit, T4>

Builder with downstream output fixed to Unit.

Type Parameters

T1

Input type of the final composed executor.

T2

Output type produced by current step.

T3

Input type of downstream action.

T4

Output 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

builder PipelineBuilder<T1, Unit, T2, T4>

Builder being extended.

middleware Func<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

T1

Input type of the final composed executor.

T2

Output type produced by current step.

T3

Output type of downstream parameterless function.

T4

Output 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

builder PipelineBuilder<T1, T2, Unit, T4>

Builder being extended.

middleware Action<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

T1

Input type of the final composed executor.

T2

Input type accepted by current step.

T3

Input type of downstream action.

T4

Output 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

builder PipelineBuilder<T1, T2, Unit, T4>

Builder being extended.

middleware Action<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

T1

Input type of the final composed executor.

T2

Input type accepted by current step.

T3

Output type of downstream parameterless function.

T4

Output 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

builder PipelineBuilder<T1, T2, T3, T4>

Builder being extended.

middleware Func<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

T1

Input type of the final composed executor.

T2

Input type accepted by current step.

T3

Output type produced by current step.

T4

Output 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

builder PipelineBuilder<T1, Unit, T2, T5>

Builder being extended.

middleware Func<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

T1

Input type of the final composed executor.

T2

Output type produced by current step.

T3

Input type of downstream function.

T4

Output type of downstream function.

T5

Output 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

builder PipelineBuilder<T1, T2, Unit, T5>

Builder being extended.

middleware Action<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

T1

Input type of the final composed executor.

T2

Input type accepted by current step.

T3

Input type of downstream function.

T4

Output type of downstream function.

T5

Output 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

builder PipelineBuilder<T1, T2, T4, T5>

Builder being extended.

middleware Func<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

T1

Input type of the final composed executor.

T2

Input type accepted by current step.

T3

Input type of downstream action.

T4

Output type produced by current step.

T5

Output 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

builder PipelineBuilder<T1, T2, T4, T5>

Builder being extended.

middleware Func<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

T1

Input type of the final composed executor.

T2

Input type accepted by current step.

T3

Output type of downstream parameterless function.

T4

Output type produced by current step.

T5

Output 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

builder PipelineBuilder<T1, T2, T5, T6>

Builder being extended.

middleware Func<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

T1

Input type of the final composed executor.

T2

Input type accepted by current step.

T3

Input type of downstream function.

T4

Output type of downstream function.

T5

Output type produced by current step.

T6

Output type of the final composed executor.