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
resultTaskTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>>The task representing the result containing a 9-element tuple.
funcFunc<T1, T2, T3, T4, T5, T6, T7, T8, T9, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
T8The type of element 8 in the tuple.
T9The type of element 9 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>>The task representing the result containing a 9-element tuple.
funcFunc<T1, T2, T3, T4, T5, T6, T7, T8, T9, Result<TResult>>The synchronous function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
T8The type of element 8 in the tuple.
T9The type of element 9 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>>The ValueTask representing the result containing a 9-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
T8The type of element 8 in the tuple.
T9The type of element 9 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>>The ValueTask representing the result containing a 9-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
T8The type of element 8 in the tuple.
T9The type of element 9 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>The result containing a 9-element tuple.
funcFunc<T1, T2, T3, T4, T5, T6, T7, T8, T9, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
T8The type of element 8 in the tuple.
T9The type of element 9 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3, T4, T5, T6, T7, T8, T9)>The result containing a 9-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
T8The type of element 8 in the tuple.
T9The type of element 9 in the tuple.
TResultThe 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
resultTaskTask<Result<TValue>>The task containing the result to bind.
funcFunc<TValue, Task<Result<TResult>>>The async function to call if the result is successful.
Returns
Type Parameters
TValueType of the input result value.
TResultType 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
resultTaskTask<Result<TValue>>The task containing the result to bind.
funcFunc<TValue, Result<TResult>>The function to call if the result is successful.
Returns
Type Parameters
TValueType of the input result value.
TResultType 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
resultTaskValueTask<Result<TValue>>The ValueTask containing the result to bind.
valueTaskFunc<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
TValueType of the input result value.
TResultType 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
resultTaskValueTask<Result<TValue>>The ValueTask containing the result to bind.
funcFunc<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
TValueType of the input result value.
TResultType 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
resultResult<TValue>The result to bind.
funcFunc<TValue, Task<Result<TResult>>>The async function to call if the result is successful.
Returns
Type Parameters
TValueType of the input result value.
TResultType 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
resultResult<TValue>The result to bind.
valueTaskFunc<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
TValueType of the input result value.
TResultType 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
resultTaskTask<Result<(T1, T2)>>The task representing the result containing a 2-element tuple.
funcFunc<T1, T2, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2)>>The task representing the result containing a 2-element tuple.
funcFunc<T1, T2, Result<TResult>>The synchronous function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2)>>The ValueTask representing the result containing a 2-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2)>>The ValueTask representing the result containing a 2-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
TResultThe 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
resultResult<(T1, T2)>The result containing a 2-element tuple.
funcFunc<T1, T2, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
TResultThe 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
resultResult<(T1, T2)>The result containing a 2-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2, T3)>>The task representing the result containing a 3-element tuple.
funcFunc<T1, T2, T3, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2, T3)>>The task representing the result containing a 3-element tuple.
funcFunc<T1, T2, T3, Result<TResult>>The synchronous function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3)>>The ValueTask representing the result containing a 3-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3)>>The ValueTask representing the result containing a 3-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3)>The result containing a 3-element tuple.
funcFunc<T1, T2, T3, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3)>The result containing a 3-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2, T3, T4)>>The task representing the result containing a 4-element tuple.
funcFunc<T1, T2, T3, T4, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2, T3, T4)>>The task representing the result containing a 4-element tuple.
funcFunc<T1, T2, T3, T4, Result<TResult>>The synchronous function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3, T4)>>The ValueTask representing the result containing a 4-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3, T4)>>The ValueTask representing the result containing a 4-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3, T4)>The result containing a 4-element tuple.
funcFunc<T1, T2, T3, T4, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3, T4)>The result containing a 4-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2, T3, T4, T5)>>The task representing the result containing a 5-element tuple.
funcFunc<T1, T2, T3, T4, T5, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2, T3, T4, T5)>>The task representing the result containing a 5-element tuple.
funcFunc<T1, T2, T3, T4, T5, Result<TResult>>The synchronous function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3, T4, T5)>>The ValueTask representing the result containing a 5-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3, T4, T5)>>The ValueTask representing the result containing a 5-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3, T4, T5)>The result containing a 5-element tuple.
funcFunc<T1, T2, T3, T4, T5, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3, T4, T5)>The result containing a 5-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2, T3, T4, T5, T6)>>The task representing the result containing a 6-element tuple.
funcFunc<T1, T2, T3, T4, T5, T6, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2, T3, T4, T5, T6)>>The task representing the result containing a 6-element tuple.
funcFunc<T1, T2, T3, T4, T5, T6, Result<TResult>>The synchronous function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3, T4, T5, T6)>>The ValueTask representing the result containing a 6-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3, T4, T5, T6)>>The ValueTask representing the result containing a 6-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3, T4, T5, T6)>The result containing a 6-element tuple.
funcFunc<T1, T2, T3, T4, T5, T6, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3, T4, T5, T6)>The result containing a 6-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2, T3, T4, T5, T6, T7)>>The task representing the result containing a 7-element tuple.
funcFunc<T1, T2, T3, T4, T5, T6, T7, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2, T3, T4, T5, T6, T7)>>The task representing the result containing a 7-element tuple.
funcFunc<T1, T2, T3, T4, T5, T6, T7, Result<TResult>>The synchronous function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3, T4, T5, T6, T7)>>The ValueTask representing the result containing a 7-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3, T4, T5, T6, T7)>>The ValueTask representing the result containing a 7-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3, T4, T5, T6, T7)>The result containing a 7-element tuple.
funcFunc<T1, T2, T3, T4, T5, T6, T7, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3, T4, T5, T6, T7)>The result containing a 7-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>>The task representing the result containing a 8-element tuple.
funcFunc<T1, T2, T3, T4, T5, T6, T7, T8, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
T8The type of element 8 in the tuple.
TResultThe 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
resultTaskTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>>The task representing the result containing a 8-element tuple.
funcFunc<T1, T2, T3, T4, T5, T6, T7, T8, Result<TResult>>The synchronous function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
T8The type of element 8 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>>The ValueTask representing the result containing a 8-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
T8The type of element 8 in the tuple.
TResultThe 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
resultTaskValueTask<Result<(T1, T2, T3, T4, T5, T6, T7, T8)>>The ValueTask representing the result containing a 8-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
T8The type of element 8 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3, T4, T5, T6, T7, T8)>The result containing a 8-element tuple.
funcFunc<T1, T2, T3, T4, T5, T6, T7, T8, Task<Result<TResult>>>The async function to execute on the tuple elements.
Returns
Type Parameters
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
T8The type of element 8 in the tuple.
TResultThe 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
resultResult<(T1, T2, T3, T4, T5, T6, T7, T8)>The result containing a 8-element tuple.
funcFunc<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
T1The type of element 1 in the tuple.
T2The type of element 2 in the tuple.
T3The type of element 3 in the tuple.
T4The type of element 4 in the tuple.
T5The type of element 5 in the tuple.
T6The type of element 6 in the tuple.
T7The type of element 7 in the tuple.
T8The type of element 8 in the tuple.
TResultThe type of the result value.