Table of Contents

Class BindExtensionsAsync

Namespace
Trellis
Assembly
Trellis.Core.dll

Provides asynchronous extension methods for binding (chaining) operations over Result values.

public static class BindExtensionsAsync
Inheritance
BindExtensionsAsync
Inherited Members

Examples

var ct = cancellationToken;
var result = await emailResult
    .Combine(userIdResult)
    .BindAsync((email, userId) => CreateUserAsync(email, userId, ct));

Remarks

These methods handle various async scenarios. Users should capture CancellationToken in their lambda closures when cancellation support is needed.

Both Task and ValueTask variants are provided for performance optimization scenarios.

Methods

BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(Task<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, Task<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 9-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(this Task<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>> resultTask, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, Task<Result<TResult>>> func)

Parameters

resultTask Task<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>>

The task representing the result containing a 9-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

T8

The type of element 8 in the tuple.

T9

The type of element 9 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(Task<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, Result<TResult>>)

Chains a synchronous operation on an asynchronous 9-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(this Task<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>> resultTask, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, Result<TResult>> func)

Parameters

resultTask Task<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>>

The task representing the result containing a 9-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

T8

The type of element 8 in the tuple.

T9

The type of element 9 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, ValueTask<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 9-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(this ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>> resultTask, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, ValueTask<Result<TResult>>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>>

The ValueTask representing the result containing a 9-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

T8

The type of element 8 in the tuple.

T9

The type of element 9 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, Result<TResult>>)

Chains a synchronous operation on an asynchronous 9-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(this ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>> resultTask, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, Result<TResult>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>>

The ValueTask representing the result containing a 9-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

T8

The type of element 8 in the tuple.

T9

The type of element 9 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, Task<Result<TResult>>>)

Asynchronously chains an operation on a 9-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(this Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)> result, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, Task<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>

The result containing a 9-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

T8

The type of element 8 in the tuple.

T9

The type of element 9 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, ValueTask<Result<TResult>>>)

Asynchronously chains an operation on a 9-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(this Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)> result, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, ValueTask<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>

The result containing a 9-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

T8

The type of element 8 in the tuple.

T9

The type of element 9 in the tuple.

TResult

The type of the result value.

BindAsync<TValue, TResult>(Task<Result<TValue>>, Func<TValue, Task<Result<TResult>>>)

Asynchronously binds a task result to a function that returns a new result.

public static Task<Result<TResult>> BindAsync<TValue, TResult>(this Task<Result<TValue>> resultTask, Func<TValue, Task<Result<TResult>>> func)

Parameters

resultTask Task<Result<TValue>>

The task containing the result to bind.

func Func<TValue, Task<Result<TResult>>>

The async function to call if the result is successful.

Returns

Task<Result<TResult>>

A new result from the function if success; otherwise the original failure.

Type Parameters

TValue

Type of the input result value.

TResult

Type of the output result value.

BindAsync<TValue, TResult>(Task<Result<TValue>>, Func<TValue, Result<TResult>>)

Asynchronously binds a task result to a synchronous function that returns a new result.

public static Task<Result<TResult>> BindAsync<TValue, TResult>(this Task<Result<TValue>> resultTask, Func<TValue, Result<TResult>> func)

Parameters

resultTask Task<Result<TValue>>

The task containing the result to bind.

func Func<TValue, Result<TResult>>

The function to call if the result is successful.

Returns

Task<Result<TResult>>

A new result from the function if success; otherwise the original failure.

Type Parameters

TValue

Type of the input result value.

TResult

Type of the output result value.

BindAsync<TValue, TResult>(ValueTask<Result<TValue>>, Func<TValue, ValueTask<Result<TResult>>>)

Asynchronously binds a ValueTask result to a function that returns a new result.

public static ValueTask<Result<TResult>> BindAsync<TValue, TResult>(this ValueTask<Result<TValue>> resultTask, Func<TValue, ValueTask<Result<TResult>>> valueTask)

Parameters

resultTask ValueTask<Result<TValue>>

The ValueTask containing the result to bind.

valueTask Func<TValue, ValueTask<Result<TResult>>>

The async function to call if the result is successful.

Returns

ValueTask<Result<TResult>>

A new result from the function if success; otherwise the original failure.

Type Parameters

TValue

Type of the input result value.

TResult

Type of the output result value.

BindAsync<TValue, TResult>(ValueTask<Result<TValue>>, Func<TValue, Result<TResult>>)

Asynchronously binds a ValueTask result to a synchronous function that returns a new result.

public static ValueTask<Result<TResult>> BindAsync<TValue, TResult>(this ValueTask<Result<TValue>> resultTask, Func<TValue, Result<TResult>> func)

Parameters

resultTask ValueTask<Result<TValue>>

The ValueTask containing the result to bind.

func Func<TValue, Result<TResult>>

The function to call if the result is successful.

Returns

ValueTask<Result<TResult>>

A new result from the function if success; otherwise the original failure.

Type Parameters

TValue

Type of the input result value.

TResult

Type of the output result value.

BindAsync<TValue, TResult>(Result<TValue>, Func<TValue, Task<Result<TResult>>>)

Asynchronously binds the result to a function that returns a new result.

public static Task<Result<TResult>> BindAsync<TValue, TResult>(this Result<TValue> result, Func<TValue, Task<Result<TResult>>> func)

Parameters

result Result<TValue>

The result to bind.

func Func<TValue, Task<Result<TResult>>>

The async function to call if the result is successful.

Returns

Task<Result<TResult>>

A new result from the function if success; otherwise the original failure.

Type Parameters

TValue

Type of the input result value.

TResult

Type of the output result value.

Remarks

OverloadResolutionPriorityAttribute resolves the historical CS0121 ambiguity against the sibling ValueTask<TResult>-delegate overload on the same sync Result<TValue> receiver when callers pass an inline async lambda whose body returns a synchronous Result<TValue>. Callers who specifically want ValueTask<TResult> still get it via a strongly-typed delegate (the Task overload is not applicable, so priority is not consulted).

BindAsync<TValue, TResult>(Result<TValue>, Func<TValue, ValueTask<Result<TResult>>>)

Binds the result to an async function that returns a ValueTask result.

public static ValueTask<Result<TResult>> BindAsync<TValue, TResult>(this Result<TValue> result, Func<TValue, ValueTask<Result<TResult>>> valueTask)

Parameters

result Result<TValue>

The result to bind.

valueTask Func<TValue, ValueTask<Result<TResult>>>

The async function to call if the result is successful.

Returns

ValueTask<Result<TResult>>

A new result from the function if success; otherwise the original failure.

Type Parameters

TValue

Type of the input result value.

TResult

Type of the output result value.

BindAsync<T1, T2, TResult>(Task<Result<(T1, T2)>>, Func<T1, T2, Task<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 2-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, TResult>(this Task<Result<(T1, T2)>> resultTask, Func<T1, T2, Task<Result<TResult>>> func)

Parameters

resultTask Task<Result<(T1, T2)>>

The task representing the result containing a 2-element tuple.

func Func<T1, T2, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, TResult>(Task<Result<(T1, T2)>>, Func<T1, T2, Result<TResult>>)

Chains a synchronous operation on an asynchronous 2-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, TResult>(this Task<Result<(T1, T2)>> resultTask, Func<T1, T2, Result<TResult>> func)

Parameters

resultTask Task<Result<(T1, T2)>>

The task representing the result containing a 2-element tuple.

func Func<T1, T2, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, TResult>(ValueTask<Result<(T1, T2)>>, Func<T1, T2, ValueTask<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 2-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, TResult>(this ValueTask<Result<(T1, T2)>> resultTask, Func<T1, T2, ValueTask<Result<TResult>>> func)

Parameters

resultTask ValueTask<Result<(T1, T2)>>

The ValueTask representing the result containing a 2-element tuple.

func Func<T1, T2, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, TResult>(ValueTask<Result<(T1, T2)>>, Func<T1, T2, Result<TResult>>)

Chains a synchronous operation on an asynchronous 2-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, TResult>(this ValueTask<Result<(T1, T2)>> resultTask, Func<T1, T2, Result<TResult>> func)

Parameters

resultTask ValueTask<Result<(T1, T2)>>

The ValueTask representing the result containing a 2-element tuple.

func Func<T1, T2, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, TResult>(Result<(T1, T2)>, Func<T1, T2, Task<Result<TResult>>>)

Asynchronously chains an operation on a 2-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, TResult>(this Result<(T1, T2)> result, Func<T1, T2, Task<Result<TResult>>> func)

Parameters

result Result<(T1, T2)>

The result containing a 2-element tuple.

func Func<T1, T2, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, TResult>(Result<(T1, T2)>, Func<T1, T2, ValueTask<Result<TResult>>>)

Asynchronously chains an operation on a 2-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, TResult>(this Result<(T1, T2)> result, Func<T1, T2, ValueTask<Result<TResult>>> func)

Parameters

result Result<(T1, T2)>

The result containing a 2-element tuple.

func Func<T1, T2, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, TResult>(Task<Result<(T1, T2, T3)>>, Func<T1, T2, T3, Task<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 3-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, TResult>(this Task<Result<(T1, T2, T3)>> resultTask, Func<T1, T2, T3, Task<Result<TResult>>> func)

Parameters

resultTask Task<Result<(T1, T2, T3)>>

The task representing the result containing a 3-element tuple.

func Func<T1, T2, T3, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, TResult>(Task<Result<(T1, T2, T3)>>, Func<T1, T2, T3, Result<TResult>>)

Chains a synchronous operation on an asynchronous 3-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, TResult>(this Task<Result<(T1, T2, T3)>> resultTask, Func<T1, T2, T3, Result<TResult>> func)

Parameters

resultTask Task<Result<(T1, T2, T3)>>

The task representing the result containing a 3-element tuple.

func Func<T1, T2, T3, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, TResult>(ValueTask<Result<(T1, T2, T3)>>, Func<T1, T2, T3, ValueTask<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 3-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, TResult>(this ValueTask<Result<(T1, T2, T3)>> resultTask, Func<T1, T2, T3, ValueTask<Result<TResult>>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3)>>

The ValueTask representing the result containing a 3-element tuple.

func Func<T1, T2, T3, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, TResult>(ValueTask<Result<(T1, T2, T3)>>, Func<T1, T2, T3, Result<TResult>>)

Chains a synchronous operation on an asynchronous 3-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, TResult>(this ValueTask<Result<(T1, T2, T3)>> resultTask, Func<T1, T2, T3, Result<TResult>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3)>>

The ValueTask representing the result containing a 3-element tuple.

func Func<T1, T2, T3, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, TResult>(Result<(T1, T2, T3)>, Func<T1, T2, T3, Task<Result<TResult>>>)

Asynchronously chains an operation on a 3-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, TResult>(this Result<(T1, T2, T3)> result, Func<T1, T2, T3, Task<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3)>

The result containing a 3-element tuple.

func Func<T1, T2, T3, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, TResult>(Result<(T1, T2, T3)>, Func<T1, T2, T3, ValueTask<Result<TResult>>>)

Asynchronously chains an operation on a 3-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, TResult>(this Result<(T1, T2, T3)> result, Func<T1, T2, T3, ValueTask<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3)>

The result containing a 3-element tuple.

func Func<T1, T2, T3, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, TResult>(Task<Result<(T1, T2, T3, T4)>>, Func<T1, T2, T3, T4, Task<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 4-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, TResult>(this Task<Result<(T1, T2, T3, T4)>> resultTask, Func<T1, T2, T3, T4, Task<Result<TResult>>> func)

Parameters

resultTask Task<Result<(T1, T2, T3, T4)>>

The task representing the result containing a 4-element tuple.

func Func<T1, T2, T3, T4, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, TResult>(Task<Result<(T1, T2, T3, T4)>>, Func<T1, T2, T3, T4, Result<TResult>>)

Chains a synchronous operation on an asynchronous 4-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, TResult>(this Task<Result<(T1, T2, T3, T4)>> resultTask, Func<T1, T2, T3, T4, Result<TResult>> func)

Parameters

resultTask Task<Result<(T1, T2, T3, T4)>>

The task representing the result containing a 4-element tuple.

func Func<T1, T2, T3, T4, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, TResult>(ValueTask<Result<(T1, T2, T3, T4)>>, Func<T1, T2, T3, T4, ValueTask<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 4-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, TResult>(this ValueTask<Result<(T1, T2, T3, T4)>> resultTask, Func<T1, T2, T3, T4, ValueTask<Result<TResult>>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3, T4)>>

The ValueTask representing the result containing a 4-element tuple.

func Func<T1, T2, T3, T4, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, TResult>(ValueTask<Result<(T1, T2, T3, T4)>>, Func<T1, T2, T3, T4, Result<TResult>>)

Chains a synchronous operation on an asynchronous 4-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, TResult>(this ValueTask<Result<(T1, T2, T3, T4)>> resultTask, Func<T1, T2, T3, T4, Result<TResult>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3, T4)>>

The ValueTask representing the result containing a 4-element tuple.

func Func<T1, T2, T3, T4, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, TResult>(Result<(T1, T2, T3, T4)>, Func<T1, T2, T3, T4, Task<Result<TResult>>>)

Asynchronously chains an operation on a 4-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, TResult>(this Result<(T1, T2, T3, T4)> result, Func<T1, T2, T3, T4, Task<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3, T4)>

The result containing a 4-element tuple.

func Func<T1, T2, T3, T4, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, TResult>(Result<(T1, T2, T3, T4)>, Func<T1, T2, T3, T4, ValueTask<Result<TResult>>>)

Asynchronously chains an operation on a 4-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, TResult>(this Result<(T1, T2, T3, T4)> result, Func<T1, T2, T3, T4, ValueTask<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3, T4)>

The result containing a 4-element tuple.

func Func<T1, T2, T3, T4, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, TResult>(Task<Result<(T1, T2, T3, T4, T5)>>, Func<T1, T2, T3, T4, T5, Task<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 5-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, TResult>(this Task<Result<(T1, T2, T3, T4, T5)>> resultTask, Func<T1, T2, T3, T4, T5, Task<Result<TResult>>> func)

Parameters

resultTask Task<Result<(T1, T2, T3, T4, T5)>>

The task representing the result containing a 5-element tuple.

func Func<T1, T2, T3, T4, T5, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, TResult>(Task<Result<(T1, T2, T3, T4, T5)>>, Func<T1, T2, T3, T4, T5, Result<TResult>>)

Chains a synchronous operation on an asynchronous 5-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, TResult>(this Task<Result<(T1, T2, T3, T4, T5)>> resultTask, Func<T1, T2, T3, T4, T5, Result<TResult>> func)

Parameters

resultTask Task<Result<(T1, T2, T3, T4, T5)>>

The task representing the result containing a 5-element tuple.

func Func<T1, T2, T3, T4, T5, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, TResult>(ValueTask<Result<(T1, T2, T3, T4, T5)>>, Func<T1, T2, T3, T4, T5, ValueTask<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 5-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, TResult>(this ValueTask<Result<(T1, T2, T3, T4, T5)>> resultTask, Func<T1, T2, T3, T4, T5, ValueTask<Result<TResult>>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3, T4, T5)>>

The ValueTask representing the result containing a 5-element tuple.

func Func<T1, T2, T3, T4, T5, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, TResult>(ValueTask<Result<(T1, T2, T3, T4, T5)>>, Func<T1, T2, T3, T4, T5, Result<TResult>>)

Chains a synchronous operation on an asynchronous 5-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, TResult>(this ValueTask<Result<(T1, T2, T3, T4, T5)>> resultTask, Func<T1, T2, T3, T4, T5, Result<TResult>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3, T4, T5)>>

The ValueTask representing the result containing a 5-element tuple.

func Func<T1, T2, T3, T4, T5, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, TResult>(Result<(T1, T2, T3, T4, T5)>, Func<T1, T2, T3, T4, T5, Task<Result<TResult>>>)

Asynchronously chains an operation on a 5-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, TResult>(this Result<(T1, T2, T3, T4, T5)> result, Func<T1, T2, T3, T4, T5, Task<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3, T4, T5)>

The result containing a 5-element tuple.

func Func<T1, T2, T3, T4, T5, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, TResult>(Result<(T1, T2, T3, T4, T5)>, Func<T1, T2, T3, T4, T5, ValueTask<Result<TResult>>>)

Asynchronously chains an operation on a 5-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, TResult>(this Result<(T1, T2, T3, T4, T5)> result, Func<T1, T2, T3, T4, T5, ValueTask<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3, T4, T5)>

The result containing a 5-element tuple.

func Func<T1, T2, T3, T4, T5, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, TResult>(Task<Result<(T1, T2, T3, T4, T5, T6)>>, Func<T1, T2, T3, T4, T5, T6, Task<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 6-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, TResult>(this Task<Result<(T1, T2, T3, T4, T5, T6)>> resultTask, Func<T1, T2, T3, T4, T5, T6, Task<Result<TResult>>> func)

Parameters

resultTask Task<Result<(T1, T2, T3, T4, T5, T6)>>

The task representing the result containing a 6-element tuple.

func Func<T1, T2, T3, T4, T5, T6, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, TResult>(Task<Result<(T1, T2, T3, T4, T5, T6)>>, Func<T1, T2, T3, T4, T5, T6, Result<TResult>>)

Chains a synchronous operation on an asynchronous 6-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, TResult>(this Task<Result<(T1, T2, T3, T4, T5, T6)>> resultTask, Func<T1, T2, T3, T4, T5, T6, Result<TResult>> func)

Parameters

resultTask Task<Result<(T1, T2, T3, T4, T5, T6)>>

The task representing the result containing a 6-element tuple.

func Func<T1, T2, T3, T4, T5, T6, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, TResult>(ValueTask<Result<(T1, T2, T3, T4, T5, T6)>>, Func<T1, T2, T3, T4, T5, T6, ValueTask<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 6-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, TResult>(this ValueTask<Result<(T1, T2, T3, T4, T5, T6)>> resultTask, Func<T1, T2, T3, T4, T5, T6, ValueTask<Result<TResult>>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3, T4, T5, T6)>>

The ValueTask representing the result containing a 6-element tuple.

func Func<T1, T2, T3, T4, T5, T6, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, TResult>(ValueTask<Result<(T1, T2, T3, T4, T5, T6)>>, Func<T1, T2, T3, T4, T5, T6, Result<TResult>>)

Chains a synchronous operation on an asynchronous 6-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, TResult>(this ValueTask<Result<(T1, T2, T3, T4, T5, T6)>> resultTask, Func<T1, T2, T3, T4, T5, T6, Result<TResult>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3, T4, T5, T6)>>

The ValueTask representing the result containing a 6-element tuple.

func Func<T1, T2, T3, T4, T5, T6, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, TResult>(Result<(T1, T2, T3, T4, T5, T6)>, Func<T1, T2, T3, T4, T5, T6, Task<Result<TResult>>>)

Asynchronously chains an operation on a 6-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, TResult>(this Result<(T1, T2, T3, T4, T5, T6)> result, Func<T1, T2, T3, T4, T5, T6, Task<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3, T4, T5, T6)>

The result containing a 6-element tuple.

func Func<T1, T2, T3, T4, T5, T6, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, TResult>(Result<(T1, T2, T3, T4, T5, T6)>, Func<T1, T2, T3, T4, T5, T6, ValueTask<Result<TResult>>>)

Asynchronously chains an operation on a 6-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, TResult>(this Result<(T1, T2, T3, T4, T5, T6)> result, Func<T1, T2, T3, T4, T5, T6, ValueTask<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3, T4, T5, T6)>

The result containing a 6-element tuple.

func Func<T1, T2, T3, T4, T5, T6, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, TResult>(Task<Result<(T1, T2, T3, T4, T5, T6, T7)>>, Func<T1, T2, T3, T4, T5, T6, T7, Task<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 7-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, TResult>(this Task<Result<(T1, T2, T3, T4, T5, T6, T7)>> resultTask, Func<T1, T2, T3, T4, T5, T6, T7, Task<Result<TResult>>> func)

Parameters

resultTask Task<Result<(T1, T2, T3, T4, T5, T6, T7)>>

The task representing the result containing a 7-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, TResult>(Task<Result<(T1, T2, T3, T4, T5, T6, T7)>>, Func<T1, T2, T3, T4, T5, T6, T7, Result<TResult>>)

Chains a synchronous operation on an asynchronous 7-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, TResult>(this Task<Result<(T1, T2, T3, T4, T5, T6, T7)>> resultTask, Func<T1, T2, T3, T4, T5, T6, T7, Result<TResult>> func)

Parameters

resultTask Task<Result<(T1, T2, T3, T4, T5, T6, T7)>>

The task representing the result containing a 7-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, TResult>(ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7)>>, Func<T1, T2, T3, T4, T5, T6, T7, ValueTask<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 7-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, TResult>(this ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7)>> resultTask, Func<T1, T2, T3, T4, T5, T6, T7, ValueTask<Result<TResult>>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7)>>

The ValueTask representing the result containing a 7-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, TResult>(ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7)>>, Func<T1, T2, T3, T4, T5, T6, T7, Result<TResult>>)

Chains a synchronous operation on an asynchronous 7-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, TResult>(this ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7)>> resultTask, Func<T1, T2, T3, T4, T5, T6, T7, Result<TResult>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7)>>

The ValueTask representing the result containing a 7-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, TResult>(Result<(T1, T2, T3, T4, T5, T6, T7)>, Func<T1, T2, T3, T4, T5, T6, T7, Task<Result<TResult>>>)

Asynchronously chains an operation on a 7-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, TResult>(this Result<(T1, T2, T3, T4, T5, T6, T7)> result, Func<T1, T2, T3, T4, T5, T6, T7, Task<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3, T4, T5, T6, T7)>

The result containing a 7-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, TResult>(Result<(T1, T2, T3, T4, T5, T6, T7)>, Func<T1, T2, T3, T4, T5, T6, T7, ValueTask<Result<TResult>>>)

Asynchronously chains an operation on a 7-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, TResult>(this Result<(T1, T2, T3, T4, T5, T6, T7)> result, Func<T1, T2, T3, T4, T5, T6, T7, ValueTask<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3, T4, T5, T6, T7)>

The result containing a 7-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(Task<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, Task<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 8-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(this Task<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>> resultTask, Func<T1, T2, T3, T4, T5, T6, T7, T8, Task<Result<TResult>>> func)

Parameters

resultTask Task<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>>

The task representing the result containing a 8-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, T8, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

T8

The type of element 8 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(Task<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, Result<TResult>>)

Chains a synchronous operation on an asynchronous 8-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(this Task<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>> resultTask, Func<T1, T2, T3, T4, T5, T6, T7, T8, Result<TResult>> func)

Parameters

resultTask Task<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>>

The task representing the result containing a 8-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, T8, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

T8

The type of element 8 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, ValueTask<Result<TResult>>>)

Chains an asynchronous operation on an asynchronous 8-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(this ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>> resultTask, Func<T1, T2, T3, T4, T5, T6, T7, T8, ValueTask<Result<TResult>>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>>

The ValueTask representing the result containing a 8-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, T8, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

T8

The type of element 8 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, Result<TResult>>)

Chains a synchronous operation on an asynchronous 8-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(this ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>> resultTask, Func<T1, T2, T3, T4, T5, T6, T7, T8, Result<TResult>> func)

Parameters

resultTask ValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>>

The ValueTask representing the result containing a 8-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, T8, Result<TResult>>

The synchronous function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

T8

The type of element 8 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(Result<(T1, T2, T3, T4, T5, T6, T7, T8)>, Func<T1, T2, T3, T4, T5, T6, T7, T8, Task<Result<TResult>>>)

Asynchronously chains an operation on a 8-element tuple result.

public static Task<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(this Result<(T1, T2, T3, T4, T5, T6, T7, T8)> result, Func<T1, T2, T3, T4, T5, T6, T7, T8, Task<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3, T4, T5, T6, T7, T8)>

The result containing a 8-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, T8, Task<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

Task<Result<TResult>>

A task that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

T8

The type of element 8 in the tuple.

TResult

The type of the result value.

BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(Result<(T1, T2, T3, T4, T5, T6, T7, T8)>, Func<T1, T2, T3, T4, T5, T6, T7, T8, ValueTask<Result<TResult>>>)

Asynchronously chains an operation on a 8-element tuple result (ValueTask variant).

public static ValueTask<Result<TResult>> BindAsync<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(this Result<(T1, T2, T3, T4, T5, T6, T7, T8)> result, Func<T1, T2, T3, T4, T5, T6, T7, T8, ValueTask<Result<TResult>>> func)

Parameters

result Result<(T1, T2, T3, T4, T5, T6, T7, T8)>

The result containing a 8-element tuple.

func Func<T1, T2, T3, T4, T5, T6, T7, T8, ValueTask<Result<TResult>>>

The async function to execute on the tuple elements.

Returns

ValueTask<Result<TResult>>

A ValueTask that represents the asynchronous operation containing the new result.

Type Parameters

T1

The type of element 1 in the tuple.

T2

The type of element 2 in the tuple.

T3

The type of element 3 in the tuple.

T4

The type of element 4 in the tuple.

T5

The type of element 5 in the tuple.

T6

The type of element 6 in the tuple.

T7

The type of element 7 in the tuple.

T8

The type of element 8 in the tuple.

TResult

The type of the result value.