Class OptionAsyncExtensions
Extension methods for async operations involving Option<T>.
Inherited Members
Namespace: RustyOptions.Async
Assembly: RustyOptions.dll
Syntax
public static class OptionAsyncExtensions
Methods
| Edit this page View SourceAndThenAsync<T1, T2>(Option<T1>, Func<T1, Task<Option<T2>>>)
Asynchronously returns None
if the option is None
, otherwise calls thenFn
with the wrapped value and returns the result.
Declaration
public static ValueTask<Option<T2>> AndThenAsync<T1, T2>(this Option<T1> self, Func<T1, Task<Option<T2>>> thenFn) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Option<T1> | self | The first option. |
Func<T1, Task<Option<T2>>> | thenFn | The function to call with the contained value, if there is a contained value. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> |
Type Parameters
Name | Description |
---|---|
T1 | The type contained by the first option. |
T2 | The type contained by the second option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
AndThenAsync<T1, T2>(Option<T1>, Func<T1, ValueTask<Option<T2>>>)
Asynchronously returns None
if the option is None
, otherwise calls thenFn
with the wrapped value and returns the result.
Declaration
public static ValueTask<Option<T2>> AndThenAsync<T1, T2>(this Option<T1> self, Func<T1, ValueTask<Option<T2>>> thenFn) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Option<T1> | self | The first option. |
Func<T1, ValueTask<Option<T2>>> | thenFn | The function to call with the contained value, if there is a contained value. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> |
Type Parameters
Name | Description |
---|---|
T1 | The type contained by the first option. |
T2 | The type contained by the second option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
AndThenAsync<T1, T2>(Task<Option<T1>>, Func<T1, Option<T2>>)
Asynchronously returns None
if the option is None
, otherwise calls thenFn
with the wrapped value and returns the result.
Declaration
public static ValueTask<Option<T2>> AndThenAsync<T1, T2>(this Task<Option<T1>> self, Func<T1, Option<T2>> thenFn) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Task<Option<T1>> | self | The first option. |
Func<T1, Option<T2>> | thenFn | The function to call with the contained value, if there is a contained value. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> |
Type Parameters
Name | Description |
---|---|
T1 | The type contained by the first option. |
T2 | The type contained by the second option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
AndThenAsync<T1, T2>(Task<Option<T1>>, Func<T1, Task<Option<T2>>>)
Asynchronously returns None
if the option is None
, otherwise calls thenFn
with the wrapped value and returns the result.
Declaration
public static ValueTask<Option<T2>> AndThenAsync<T1, T2>(this Task<Option<T1>> self, Func<T1, Task<Option<T2>>> thenFn) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Task<Option<T1>> | self | The first option. |
Func<T1, Task<Option<T2>>> | thenFn | The function to call with the contained value, if there is a contained value. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> |
Type Parameters
Name | Description |
---|---|
T1 | The type contained by the first option. |
T2 | The type contained by the second option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
AndThenAsync<T1, T2>(Task<Option<T1>>, Func<T1, ValueTask<Option<T2>>>)
Asynchronously returns None
if the option is None
, otherwise calls thenFn
with the wrapped value and returns the result.
Declaration
public static ValueTask<Option<T2>> AndThenAsync<T1, T2>(this Task<Option<T1>> self, Func<T1, ValueTask<Option<T2>>> thenFn) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Task<Option<T1>> | self | The first option. |
Func<T1, ValueTask<Option<T2>>> | thenFn | The function to call with the contained value, if there is a contained value. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> |
Type Parameters
Name | Description |
---|---|
T1 | The type contained by the first option. |
T2 | The type contained by the second option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
AndThenAsync<T1, T2>(ValueTask<Option<T1>>, Func<T1, Option<T2>>)
Asynchronously returns None
if the option is None
, otherwise calls thenFn
with the wrapped value and returns the result.
Declaration
public static ValueTask<Option<T2>> AndThenAsync<T1, T2>(this ValueTask<Option<T1>> self, Func<T1, Option<T2>> thenFn) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
ValueTask<Option<T1>> | self | The first option. |
Func<T1, Option<T2>> | thenFn | The function to call with the contained value, if there is a contained value. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> |
Type Parameters
Name | Description |
---|---|
T1 | The type contained by the first option. |
T2 | The type contained by the second option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
AndThenAsync<T1, T2>(ValueTask<Option<T1>>, Func<T1, Task<Option<T2>>>)
Asynchronously returns None
if the option is None
, otherwise calls thenFn
with the wrapped value and returns the result.
Declaration
public static ValueTask<Option<T2>> AndThenAsync<T1, T2>(this ValueTask<Option<T1>> self, Func<T1, Task<Option<T2>>> thenFn) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
ValueTask<Option<T1>> | self | The first option. |
Func<T1, Task<Option<T2>>> | thenFn | The function to call with the contained value, if there is a contained value. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> |
Type Parameters
Name | Description |
---|---|
T1 | The type contained by the first option. |
T2 | The type contained by the second option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
AndThenAsync<T1, T2>(ValueTask<Option<T1>>, Func<T1, ValueTask<Option<T2>>>)
Asynchronously returns None
if the option is None
, otherwise calls thenFn
with the wrapped value and returns the result.
Declaration
public static ValueTask<Option<T2>> AndThenAsync<T1, T2>(this ValueTask<Option<T1>> self, Func<T1, ValueTask<Option<T2>>> thenFn) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
ValueTask<Option<T1>> | self | The first option. |
Func<T1, ValueTask<Option<T2>>> | thenFn | The function to call with the contained value, if there is a contained value. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> |
Type Parameters
Name | Description |
---|---|
T1 | The type contained by the first option. |
T2 | The type contained by the second option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
FirstOrNoneAsync<T>(IAsyncEnumerable<T>, Func<T, bool>, CancellationToken)
Returns the first element of a sequence, satisfying a specified predicate, if such exists.
Declaration
public static ValueTask<Option<T>> FirstOrNoneAsync<T>(this IAsyncEnumerable<T> self, Func<T, bool> predicate, CancellationToken ct = default) where T : notnull
Parameters
Type | Name | Description |
---|---|---|
IAsyncEnumerable<T> | self | The sequence to return the first element from. |
Func<T, bool> | predicate | The predicate to filter by. |
CancellationToken | ct | A CancellationToken that will interrupt async iteration. |
Returns
Type | Description |
---|---|
ValueTask<Option<T>> | An Option<T> instance containing the first matching element, if present. |
Type Parameters
Name | Description |
---|---|
T |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown when |
FirstOrNoneAsync<T>(IAsyncEnumerable<T>, CancellationToken)
Returns the first element of an asynchronous sequence if such exists.
Declaration
public static ValueTask<Option<T>> FirstOrNoneAsync<T>(this IAsyncEnumerable<T> self, CancellationToken ct = default) where T : notnull
Parameters
Type | Name | Description |
---|---|---|
IAsyncEnumerable<T> | self | The sequence to return the first element from. |
CancellationToken | ct | A CancellationToken that will interrupt async iteration. |
Returns
Type | Description |
---|---|
ValueTask<Option<T>> | An Option<T> instance containing the first element if present. |
Type Parameters
Name | Description |
---|---|
T |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown when |
MapAsync<T1, T2>(Option<T1>, Func<T1, Task<T2>>)
If the option has a value, passes that option to the mapper function and asynchronously returns that value
as a Some
.
Declaration
public static ValueTask<Option<T2>> MapAsync<T1, T2>(this Option<T1> self, Func<T1, Task<T2>> mapper) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Option<T1> | self | The option to map. |
Func<T1, Task<T2>> | mapper | The function that maps the value contained in the option. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> | The mapped value as |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option. |
T2 | The type returned by the mapper functions. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapAsync<T1, T2>(Option<T1>, Func<T1, ValueTask<T2>>)
If the option has a value, passes that option to the mapper function and asynchronously returns that value
as a Some
.
Declaration
public static ValueTask<Option<T2>> MapAsync<T1, T2>(this Option<T1> self, Func<T1, ValueTask<T2>> mapper) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Option<T1> | self | The option to map. |
Func<T1, ValueTask<T2>> | mapper | The function that maps the value contained in the option. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> | The mapped value as |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option. |
T2 | The type returned by the mapper functions. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapAsync<T1, T2>(Task<Option<T1>>, Func<T1, Task<T2>>)
If the option has a value, passes that option to the mapper function and asynchronously returns that value
as a Some
.
Declaration
public static ValueTask<Option<T2>> MapAsync<T1, T2>(this Task<Option<T1>> self, Func<T1, Task<T2>> mapper) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Task<Option<T1>> | self | The option to map. |
Func<T1, Task<T2>> | mapper | The function that maps the value contained in the option. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> | The mapped value as |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option. |
T2 | The type returned by the mapper functions. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapAsync<T1, T2>(Task<Option<T1>>, Func<T1, ValueTask<T2>>)
If the option has a value, passes that option to the mapper function and asynchronously returns that value
as a Some
.
Declaration
public static ValueTask<Option<T2>> MapAsync<T1, T2>(this Task<Option<T1>> self, Func<T1, ValueTask<T2>> mapper) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Task<Option<T1>> | self | The option to map. |
Func<T1, ValueTask<T2>> | mapper | The function that maps the value contained in the option. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> | The mapped value as |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option. |
T2 | The type returned by the mapper functions. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapAsync<T1, T2>(Task<Option<T1>>, Func<T1, T2>)
If the option has a value, passes that option to the mapper function and asynchronously returns that value
as a Some
.
Declaration
public static ValueTask<Option<T2>> MapAsync<T1, T2>(this Task<Option<T1>> self, Func<T1, T2> mapper) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Task<Option<T1>> | self | The option to map. |
Func<T1, T2> | mapper | The function that maps the value contained in the option. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> | The mapped value as |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option. |
T2 | The type returned by the mapper functions. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapAsync<T1, T2>(ValueTask<Option<T1>>, Func<T1, Task<T2>>)
If the option has a value, passes that option to the mapper function and asynchronously returns that value
as a Some
.
Declaration
public static ValueTask<Option<T2>> MapAsync<T1, T2>(this ValueTask<Option<T1>> self, Func<T1, Task<T2>> mapper) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
ValueTask<Option<T1>> | self | The option to map. |
Func<T1, Task<T2>> | mapper | The function that maps the value contained in the option. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> | The mapped value as |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option. |
T2 | The type returned by the mapper functions. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapAsync<T1, T2>(ValueTask<Option<T1>>, Func<T1, ValueTask<T2>>)
If the option has a value, passes that option to the mapper function and asynchronously returns that value
as a Some
.
Declaration
public static ValueTask<Option<T2>> MapAsync<T1, T2>(this ValueTask<Option<T1>> self, Func<T1, ValueTask<T2>> mapper) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
ValueTask<Option<T1>> | self | The option to map. |
Func<T1, ValueTask<T2>> | mapper | The function that maps the value contained in the option. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> | The mapped value as |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option. |
T2 | The type returned by the mapper functions. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapAsync<T1, T2>(ValueTask<Option<T1>>, Func<T1, T2>)
If the option has a value, passes that option to the mapper function and asynchronously returns that value
as a Some
.
Declaration
public static ValueTask<Option<T2>> MapAsync<T1, T2>(this ValueTask<Option<T1>> self, Func<T1, T2> mapper) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
ValueTask<Option<T1>> | self | The option to map. |
Func<T1, T2> | mapper | The function that maps the value contained in the option. |
Returns
Type | Description |
---|---|
ValueTask<Option<T2>> | The mapped value as |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option. |
T2 | The type returned by the mapper functions. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapOrElseAsync<T1, T2>(Option<T1>, Func<T1, Task<T2>>, Func<Task<T2>>)
Asynchronously computes a default function result (if None
), or applies a different function to the contained value (if Some
).
Declaration
public static ValueTask<T2> MapOrElseAsync<T1, T2>(this Option<T1> self, Func<T1, Task<T2>> mapper, Func<Task<T2>> defaultFactory) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Option<T1> | self | The option to map. |
Func<T1, Task<T2>> | mapper | The function that maps the value contained in the option. |
Func<Task<T2>> | defaultFactory | The function that lazily generates a default value, if required. |
Returns
Type | Description |
---|---|
ValueTask<T2> | The mapped value, or the default value. |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option's value. |
T2 | The return type after mapping. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapOrElseAsync<T1, T2>(Option<T1>, Func<T1, ValueTask<T2>>, Func<ValueTask<T2>>)
Asynchronously computes a default function result (if None
), or applies a different function to the contained value (if Some
).
Declaration
public static ValueTask<T2> MapOrElseAsync<T1, T2>(this Option<T1> self, Func<T1, ValueTask<T2>> mapper, Func<ValueTask<T2>> defaultFactory) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Option<T1> | self | The option to map. |
Func<T1, ValueTask<T2>> | mapper | The function that maps the value contained in the option. |
Func<ValueTask<T2>> | defaultFactory | The function that lazily generates a default value, if required. |
Returns
Type | Description |
---|---|
ValueTask<T2> | The mapped value, or the default value. |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option's value. |
T2 | The return type after mapping. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapOrElseAsync<T1, T2>(Task<Option<T1>>, Func<T1, Task<T2>>, Func<Task<T2>>)
Asynchronously computes a default function result (if None
), or applies a different function to the contained value (if Some
).
Declaration
public static ValueTask<T2> MapOrElseAsync<T1, T2>(this Task<Option<T1>> self, Func<T1, Task<T2>> mapper, Func<Task<T2>> defaultFactory) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Task<Option<T1>> | self | The option to map. |
Func<T1, Task<T2>> | mapper | The function that maps the value contained in the option. |
Func<Task<T2>> | defaultFactory | The function that lazily generates a default value, if required. |
Returns
Type | Description |
---|---|
ValueTask<T2> | The mapped value, or the default value. |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option's value. |
T2 | The return type after mapping. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapOrElseAsync<T1, T2>(Task<Option<T1>>, Func<T1, ValueTask<T2>>, Func<ValueTask<T2>>)
Asynchronously computes a default function result (if None
), or applies a different function to the contained value (if Some
).
Declaration
public static ValueTask<T2> MapOrElseAsync<T1, T2>(this Task<Option<T1>> self, Func<T1, ValueTask<T2>> mapper, Func<ValueTask<T2>> defaultFactory) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Task<Option<T1>> | self | The option to map. |
Func<T1, ValueTask<T2>> | mapper | The function that maps the value contained in the option. |
Func<ValueTask<T2>> | defaultFactory | The function that lazily generates a default value, if required. |
Returns
Type | Description |
---|---|
ValueTask<T2> | The mapped value, or the default value. |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option's value. |
T2 | The return type after mapping. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapOrElseAsync<T1, T2>(Task<Option<T1>>, Func<T1, T2>, Func<T2>)
Asynchronously computes a default function result (if None
), or applies a different function to the contained value (if Some
).
Declaration
public static ValueTask<T2> MapOrElseAsync<T1, T2>(this Task<Option<T1>> self, Func<T1, T2> mapper, Func<T2> defaultFactory) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
Task<Option<T1>> | self | The option to map. |
Func<T1, T2> | mapper | The function that maps the value contained in the option. |
Func<T2> | defaultFactory | The function that lazily generates a default value, if required. |
Returns
Type | Description |
---|---|
ValueTask<T2> | The mapped value, or the default value. |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option's value. |
T2 | The return type after mapping. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapOrElseAsync<T1, T2>(ValueTask<Option<T1>>, Func<T1, Task<T2>>, Func<Task<T2>>)
Asynchronously computes a default function result (if None
), or applies a different function to the contained value (if Some
).
Declaration
public static ValueTask<T2> MapOrElseAsync<T1, T2>(this ValueTask<Option<T1>> self, Func<T1, Task<T2>> mapper, Func<Task<T2>> defaultFactory) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
ValueTask<Option<T1>> | self | The option to map. |
Func<T1, Task<T2>> | mapper | The function that maps the value contained in the option. |
Func<Task<T2>> | defaultFactory | The function that lazily generates a default value, if required. |
Returns
Type | Description |
---|---|
ValueTask<T2> | The mapped value, or the default value. |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option's value. |
T2 | The return type after mapping. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapOrElseAsync<T1, T2>(ValueTask<Option<T1>>, Func<T1, ValueTask<T2>>, Func<ValueTask<T2>>)
Asynchronously computes a default function result (if None
), or applies a different function to the contained value (if Some
).
Declaration
public static ValueTask<T2> MapOrElseAsync<T1, T2>(this ValueTask<Option<T1>> self, Func<T1, ValueTask<T2>> mapper, Func<ValueTask<T2>> defaultFactory) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
ValueTask<Option<T1>> | self | The option to map. |
Func<T1, ValueTask<T2>> | mapper | The function that maps the value contained in the option. |
Func<ValueTask<T2>> | defaultFactory | The function that lazily generates a default value, if required. |
Returns
Type | Description |
---|---|
ValueTask<T2> | The mapped value, or the default value. |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option's value. |
T2 | The return type after mapping. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
MapOrElseAsync<T1, T2>(ValueTask<Option<T1>>, Func<T1, T2>, Func<T2>)
Asynchronously computes a default function result (if None
), or applies a different function to the contained value (if Some
).
Declaration
public static ValueTask<T2> MapOrElseAsync<T1, T2>(this ValueTask<Option<T1>> self, Func<T1, T2> mapper, Func<T2> defaultFactory) where T1 : notnull where T2 : notnull
Parameters
Type | Name | Description |
---|---|---|
ValueTask<Option<T1>> | self | The option to map. |
Func<T1, T2> | mapper | The function that maps the value contained in the option. |
Func<T2> | defaultFactory | The function that lazily generates a default value, if required. |
Returns
Type | Description |
---|---|
ValueTask<T2> | The mapped value, or the default value. |
Type Parameters
Name | Description |
---|---|
T1 | The type of the option's value. |
T2 | The return type after mapping. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
OrElseAsync<T>(Option<T>, Func<Task<Option<T>>>)
Asynchronously returns self
if it contains a value, otherwise calls elseFn
and returns the result.
Declaration
public static ValueTask<Option<T>> OrElseAsync<T>(this Option<T> self, Func<Task<Option<T>>> elseFn) where T : notnull
Parameters
Type | Name | Description |
---|---|---|
Option<T> | self | The option. |
Func<Task<Option<T>>> | elseFn | The function that creates the alternate value if the option is |
Returns
Type | Description |
---|---|
ValueTask<Option<T>> |
Type Parameters
Name | Description |
---|---|
T | The type contained by the option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
OrElseAsync<T>(Option<T>, Func<ValueTask<Option<T>>>)
Asynchronously returns self
if it contains a value, otherwise calls elseFn
and returns the result.
Declaration
public static ValueTask<Option<T>> OrElseAsync<T>(this Option<T> self, Func<ValueTask<Option<T>>> elseFn) where T : notnull
Parameters
Type | Name | Description |
---|---|---|
Option<T> | self | The option. |
Func<ValueTask<Option<T>>> | elseFn | The function that creates the alternate value if the option is |
Returns
Type | Description |
---|---|
ValueTask<Option<T>> |
Type Parameters
Name | Description |
---|---|
T | The type contained by the option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
OrElseAsync<T>(Task<Option<T>>, Func<Option<T>>)
Asynchronously returns self
if it contains a value, otherwise calls elseFn
and returns the result.
Declaration
public static ValueTask<Option<T>> OrElseAsync<T>(this Task<Option<T>> self, Func<Option<T>> elseFn) where T : notnull
Parameters
Type | Name | Description |
---|---|---|
Task<Option<T>> | self | The option. |
Func<Option<T>> | elseFn | The function that creates the alternate value if the option is |
Returns
Type | Description |
---|---|
ValueTask<Option<T>> |
Type Parameters
Name | Description |
---|---|
T | The type contained by the option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
OrElseAsync<T>(Task<Option<T>>, Func<Task<Option<T>>>)
Asynchronously returns self
if it contains a value, otherwise calls elseFn
and returns the result.
Declaration
public static ValueTask<Option<T>> OrElseAsync<T>(this Task<Option<T>> self, Func<Task<Option<T>>> elseFn) where T : notnull
Parameters
Type | Name | Description |
---|---|---|
Task<Option<T>> | self | The option. |
Func<Task<Option<T>>> | elseFn | The function that creates the alternate value if the option is |
Returns
Type | Description |
---|---|
ValueTask<Option<T>> |
Type Parameters
Name | Description |
---|---|
T | The type contained by the option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
OrElseAsync<T>(Task<Option<T>>, Func<ValueTask<Option<T>>>)
Asynchronously returns self
if it contains a value, otherwise calls elseFn
and returns the result.
Declaration
public static ValueTask<Option<T>> OrElseAsync<T>(this Task<Option<T>> self, Func<ValueTask<Option<T>>> elseFn) where T : notnull
Parameters
Type | Name | Description |
---|---|---|
Task<Option<T>> | self | The option. |
Func<ValueTask<Option<T>>> | elseFn | The function that creates the alternate value if the option is |
Returns
Type | Description |
---|---|
ValueTask<Option<T>> |
Type Parameters
Name | Description |
---|---|
T | The type contained by the option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
OrElseAsync<T>(ValueTask<Option<T>>, Func<Option<T>>)
Asynchronously returns self
if it contains a value, otherwise calls elseFn
and returns the result.
Declaration
public static ValueTask<Option<T>> OrElseAsync<T>(this ValueTask<Option<T>> self, Func<Option<T>> elseFn) where T : notnull
Parameters
Type | Name | Description |
---|---|---|
ValueTask<Option<T>> | self | The option. |
Func<Option<T>> | elseFn | The function that creates the alternate value if the option is |
Returns
Type | Description |
---|---|
ValueTask<Option<T>> |
Type Parameters
Name | Description |
---|---|
T | The type contained by the option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
OrElseAsync<T>(ValueTask<Option<T>>, Func<Task<Option<T>>>)
Asynchronously returns self
if it contains a value, otherwise calls elseFn
and returns the result.
Declaration
public static ValueTask<Option<T>> OrElseAsync<T>(this ValueTask<Option<T>> self, Func<Task<Option<T>>> elseFn) where T : notnull
Parameters
Type | Name | Description |
---|---|---|
ValueTask<Option<T>> | self | The option. |
Func<Task<Option<T>>> | elseFn | The function that creates the alternate value if the option is |
Returns
Type | Description |
---|---|
ValueTask<Option<T>> |
Type Parameters
Name | Description |
---|---|
T | The type contained by the option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
OrElseAsync<T>(ValueTask<Option<T>>, Func<ValueTask<Option<T>>>)
Asynchronously returns self
if it contains a value, otherwise calls elseFn
and returns the result.
Declaration
public static ValueTask<Option<T>> OrElseAsync<T>(this ValueTask<Option<T>> self, Func<ValueTask<Option<T>>> elseFn) where T : notnull
Parameters
Type | Name | Description |
---|---|---|
ValueTask<Option<T>> | self | The option. |
Func<ValueTask<Option<T>>> | elseFn | The function that creates the alternate value if the option is |
Returns
Type | Description |
---|---|
ValueTask<Option<T>> |
Type Parameters
Name | Description |
---|---|
T | The type contained by the option. |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown if |
ValuesAsync<T>(IAsyncEnumerable<Option<T>>, CancellationToken)
Flattens an asynchronous sequence of Option<T> into a sequence containing all inner values. Empty elements are discarded.
Declaration
public static IAsyncEnumerable<T> ValuesAsync<T>(this IAsyncEnumerable<Option<T>> self, CancellationToken ct = default) where T : notnull
Parameters
Type | Name | Description |
---|---|---|
IAsyncEnumerable<Option<T>> | self | The sequence of options. |
CancellationToken | ct | A CancellationToken that will interrupt async iteration. |
Returns
Type | Description |
---|---|
IAsyncEnumerable<T> | A flattened sequence of values. |
Type Parameters
Name | Description |
---|---|
T |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown when |