Table of Contents

Class AsyncStrategy<TIn, TOut>.Builder

Namespace
PatternKit.Behavioral.Strategy
Assembly
PatternKit.Core.dll

Fluent builder for composing AsyncStrategy<TIn, TOut> branches.

public sealed class AsyncStrategy<TIn, TOut>.Builder
Inheritance
AsyncStrategy<TIn, TOut>.Builder
Inherited Members
Extension Methods

Remarks

Use When(Predicate) to add predicate/handler branches and Default(Handler) to set an optional fallback handler. Supports synchronous adapters for convenience—see When(Func<TIn, bool>), When(Func<TIn, CancellationToken, bool>), and Default(Func<TIn, TOut>).

Methods

Build()

Finalizes the configuration and creates an immutable AsyncStrategy<TIn, TOut>.

public AsyncStrategy<TIn, TOut> Build()

Returns

AsyncStrategy<TIn, TOut>

An immutable strategy instance.

Default(Handler)

Sets the default (fallback) handler used when no predicates match.

public AsyncStrategy<TIn, TOut>.Builder Default(AsyncStrategy<TIn, TOut>.Handler handler)

Parameters

handler AsyncStrategy<TIn, TOut>.Handler

The asynchronous default handler.

Returns

AsyncStrategy<TIn, TOut>.Builder

The current AsyncStrategy<TIn, TOut>.Builder for chaining.

Exceptions

ArgumentNullException

Thrown when handler is null.

Default(Func<TIn, TOut>)

Sets the default (fallback) handler using a synchronous delegate.

public AsyncStrategy<TIn, TOut>.Builder Default(Func<TIn, TOut> syncHandler)

Parameters

syncHandler Func<TIn, TOut>

Synchronous default handler; wrapped as async.

Returns

AsyncStrategy<TIn, TOut>.Builder

The current AsyncStrategy<TIn, TOut>.Builder for chaining.

When(Predicate)

Adds a new branch that will be considered during execution.

public AsyncStrategy<TIn, TOut>.Builder.WhenBuilder When(AsyncStrategy<TIn, TOut>.Predicate pred)

Parameters

pred AsyncStrategy<TIn, TOut>.Predicate

An asynchronous predicate for the branch.

Returns

AsyncStrategy<TIn, TOut>.Builder.WhenBuilder

A AsyncStrategy<TIn, TOut>.Builder.WhenBuilder that allows specifying the corresponding handler via Then(Handler).

Exceptions

ArgumentNullException

Thrown when pred is null.

When(Func<TIn, bool>)

Adds a branch using a synchronous predicate (no CancellationToken).

public AsyncStrategy<TIn, TOut>.Builder.WhenBuilder When(Func<TIn, bool> syncPred)

Parameters

syncPred Func<TIn, bool>

Synchronous predicate; wrapped as an async predicate.

Returns

AsyncStrategy<TIn, TOut>.Builder.WhenBuilder

A AsyncStrategy<TIn, TOut>.Builder.WhenBuilder to specify the handler.

When(Func<TIn, CancellationToken, bool>)

Adds a branch using a synchronous predicate that accepts a CancellationToken.

public AsyncStrategy<TIn, TOut>.Builder.WhenBuilder When(Func<TIn, CancellationToken, bool> syncPredWithCt)

Parameters

syncPredWithCt Func<TIn, CancellationToken, bool>

Synchronous predicate receiving a token; wrapped as async.

Returns

AsyncStrategy<TIn, TOut>.Builder.WhenBuilder

A AsyncStrategy<TIn, TOut>.Builder.WhenBuilder to specify the handler.