Skip to main content

MaybeExtensions

Namespace: Bogoware.Monads

public static class MaybeExtensions

Inheritance ObjectMaybeExtensions
Attributes NullableContextAttribute, NullableAttribute, ExtensionAttribute

Methods

Map<TValue, TNewValue>(Maybe<TValue>, TNewValue)

Map the value to a new one.

public static Maybe<TNewValue> Map<TValue, TNewValue>(Maybe<TValue> maybe, TNewValue value)

Type Parameters

TValue

TNewValue

Parameters

maybe Maybe<TValue>

value TNewValue

Returns

Maybe<TNewValue>

Map<TValue, TNewValue>(Maybe<TValue>, Func<TNewValue>)

public static Maybe<TNewValue> Map<TValue, TNewValue>(Maybe<TValue> maybe, Func<TNewValue> map)

Type Parameters

TValue

TNewValue

Parameters

maybe Maybe<TValue>

map Func<TNewValue>

Returns

Maybe<TNewValue>

Map<TValue, TNewValue>(Maybe<TValue>, Func<Task<TNewValue>>)

public static Task<Maybe<TNewValue>> Map<TValue, TNewValue>(Maybe<TValue> maybe, Func<Task<TNewValue>> map)

Type Parameters

TValue

TNewValue

Parameters

maybe Maybe<TValue>

map Func<Task<TNewValue>>

Returns

Task<Maybe<TNewValue>>

Bind<TValue, TNewValue>(Maybe<TValue>, Func<Maybe<TNewValue>>)

Bind the maybe and, possibly, to a new one.

public static Maybe<TNewValue> Bind<TValue, TNewValue>(Maybe<TValue> maybe, Func<Maybe<TNewValue>> map)

Type Parameters

TValue

TNewValue

Parameters

maybe Maybe<TValue>

map Func<Maybe<TNewValue>>

Returns

Maybe<TNewValue>

Bind<TValue, TNewValue>(Maybe<TValue>, Func<Task<Maybe<TNewValue>>>)

public static Task<Maybe<TNewValue>> Bind<TValue, TNewValue>(Maybe<TValue> maybe, Func<Task<Maybe<TNewValue>>> map)

Type Parameters

TValue

TNewValue

Parameters

maybe Maybe<TValue>

map Func<Task<Maybe<TNewValue>>>

Returns

Task<Maybe<TNewValue>>

Match<TValue, TResult>(Maybe<TValue>, TResult, TResult)

Maps a new value for both state of a Maybe<TValue>

public static TResult Match<TValue, TResult>(Maybe<TValue> maybe, TResult resultOnValue, TResult resultOnNone)

Type Parameters

TValue

TResult

Parameters

maybe Maybe<TValue>

resultOnValue TResult

resultOnNone TResult

Returns

TResult

Match<TValue, TResult>(Maybe<TValue>, Func<TResult>, TResult)

public static TResult Match<TValue, TResult>(Maybe<TValue> maybe, Func<TResult> resultOnValue, TResult resultOnNone)

Type Parameters

TValue

TResult

Parameters

maybe Maybe<TValue>

resultOnValue Func<TResult>

resultOnNone TResult

Returns

TResult

Match<TValue, TResult>(Maybe<TValue>, TResult, Func<TResult>)

public static TResult Match<TValue, TResult>(Maybe<TValue> maybe, TResult resultOnValue, Func<TResult> resultOnNone)

Type Parameters

TValue

TResult

Parameters

maybe Maybe<TValue>

resultOnValue TResult

resultOnNone Func<TResult>

Returns

TResult

Match<TValue, TResult>(Maybe<TValue>, Func<TResult>, Func<TResult>)

public static TResult Match<TValue, TResult>(Maybe<TValue> maybe, Func<TResult> resultOnValue, Func<TResult> resultOnNone)

Type Parameters

TValue

TResult

Parameters

maybe Maybe<TValue>

resultOnValue Func<TResult>

resultOnNone Func<TResult>

Returns

TResult

Match<TValue, TResult>(Maybe<TValue>, Func<Task<TResult>>, TResult)

public static Task<TResult> Match<TValue, TResult>(Maybe<TValue> maybe, Func<Task<TResult>> resultOnValue, TResult resultOnNone)

Type Parameters

TValue

TResult

Parameters

maybe Maybe<TValue>

resultOnValue Func<Task<TResult>>

resultOnNone TResult

Returns

Task<TResult>

Match<TValue, TResult>(Maybe<TValue>, TResult, Func<Task<TResult>>)

public static Task<TResult> Match<TValue, TResult>(Maybe<TValue> maybe, TResult resultOnValue, Func<Task<TResult>> resultOnNone)

Type Parameters

TValue

TResult

Parameters

maybe Maybe<TValue>

resultOnValue TResult

resultOnNone Func<Task<TResult>>

Returns

Task<TResult>

Match<TValue, TResult>(Maybe<TValue>, Func<Task<TResult>>, Func<Task<TResult>>)

public static Task<TResult> Match<TValue, TResult>(Maybe<TValue> maybe, Func<Task<TResult>> resultOnValue, Func<Task<TResult>> resultOnNone)

Type Parameters

TValue

TResult

Parameters

maybe Maybe<TValue>

resultOnValue Func<Task<TResult>>

resultOnNone Func<Task<TResult>>

Returns

Task<TResult>

ToMaybe<TValue>(IEnumerable<TValue>)

Returns a Maybe<TValue> with Some(first) in case of non empty list.

public static Maybe<TValue> ToMaybe<TValue>(IEnumerable<TValue> values)

Type Parameters

TValue

Parameters

values IEnumerable<TValue>

Returns

Maybe<TValue>

Where<TValue>(TValue, Func<TValue, Boolean>)

Returns the original Some if predicate is satisfied, None otherwise.

public static Maybe<TValue> Where<TValue>(TValue obj, Func<TValue, bool> predicate)

Type Parameters

TValue

Parameters

obj TValue

predicate Func<TValue, Boolean>

Returns

Maybe<TValue>

WhereNot<TValue>(TValue, Func<TValue, Boolean>)

Returns the original Some if predicate is not satisfied, None otherwise.

public static Maybe<TValue> WhereNot<TValue>(TValue obj, Func<TValue, bool> predicate)

Type Parameters

TValue

Parameters

obj TValue

predicate Func<TValue, Boolean>

Returns

Maybe<TValue>

Satisfy<TValue>(Maybe<TValue>, Func<TValue, Boolean>)

Evaluate the predicate applied to the value if present. Return false in case of None.

public static bool Satisfy<TValue>(Maybe<TValue> maybe, Func<TValue, bool> predicate)

Type Parameters

TValue

Parameters

maybe Maybe<TValue>

predicate Func<TValue, Boolean>

Returns

Boolean

Satisfy<TValue>(Maybe<TValue>, Func<TValue, Task<Boolean>>)

public static Task<bool> Satisfy<TValue>(Maybe<TValue> maybe, Func<TValue, Task<bool>> predicate)

Type Parameters

TValue

Parameters

maybe Maybe<TValue>

predicate Func<TValue, Task<Boolean>>

Returns

Task<Boolean>

Execute<TValue>(Maybe`1&, Action<Maybe<TValue>>)

Execute the action.

public static Maybe`1& Execute<TValue>(Maybe`1& maybe, Action<Maybe<TValue>> action)

Type Parameters

TValue

Parameters

maybe Maybe`1&

action Action<Maybe<TValue>>

Returns

Maybe`1&

Execute<TValue>(Maybe<TValue>, Func<Maybe<TValue>, Task>)

public static Task<Maybe<TValue>> Execute<TValue>(Maybe<TValue> maybe, Func<Maybe<TValue>, Task> action)

Type Parameters

TValue

Parameters

maybe Maybe<TValue>

action Func<Maybe<TValue>, Task>

Returns

Task<Maybe<TValue>>

IfSome<TValue>(Maybe`1&, Action)

Execute the action if the Maybe<TValue> is Some.

public static Maybe`1& IfSome<TValue>(Maybe`1& maybe, Action action)

Type Parameters

TValue

Parameters

maybe Maybe`1&

action Action

Returns

Maybe`1&

IfSome<TNewValue>(Maybe<TNewValue>, Func<Task>)

public static Task<Maybe<TNewValue>> IfSome<TNewValue>(Maybe<TNewValue> maybe, Func<Task> action)

Type Parameters

TNewValue

Parameters

maybe Maybe<TNewValue>

action Func<Task>

Returns

Task<Maybe<TNewValue>>

IfNone<TNewValue>(Maybe`1&, Action)

Execute the action if the Maybe<TValue> is None.

public static Maybe`1& IfNone<TNewValue>(Maybe`1& maybe, Action action)

Type Parameters

TNewValue

Parameters

maybe Maybe`1&

action Action

Returns

Maybe`1&

IfNone<TNewValue>(Maybe<TNewValue>, Func<Task>)

public static Task<Maybe<TNewValue>> IfNone<TNewValue>(Maybe<TNewValue> maybe, Func<Task> action)

Type Parameters

TNewValue

Parameters

maybe Maybe<TNewValue>

action Func<Task>

Returns

Task<Maybe<TNewValue>>

WithDefault<TNewValue>(Maybe<TNewValue>, TNewValue)

public static Maybe<TNewValue> WithDefault<TNewValue>(Maybe<TNewValue> maybe, TNewValue value)

Type Parameters

TNewValue

Parameters

maybe Maybe<TNewValue>

value TNewValue

Returns

Maybe<TNewValue>

WithDefault<TNewValue>(Maybe<TNewValue>, Func<TNewValue>)

public static Maybe<TNewValue> WithDefault<TNewValue>(Maybe<TNewValue> maybe, Func<TNewValue> value)

Type Parameters

TNewValue

Parameters

maybe Maybe<TNewValue>

value Func<TNewValue>

Returns

Maybe<TNewValue>

WithDefault<TNewValue>(Maybe<TNewValue>, Func<Task<TNewValue>>)

public static Task<Maybe<TNewValue>> WithDefault<TNewValue>(Maybe<TNewValue> maybe, Func<Task<TNewValue>> value)

Type Parameters

TNewValue

Parameters

maybe Maybe<TNewValue>

value Func<Task<TNewValue>>

Returns

Task<Maybe<TNewValue>>

MapToResult<TValue>(Maybe<TValue>)

Convert a Maybe<TValue> to a Result<TValue> with a default error in case of None.

public static Result<TValue> MapToResult<TValue>(Maybe<TValue> maybe)

Type Parameters

TValue

Parameters

maybe Maybe<TValue>

Returns

Result<TValue>

MapToResult<TValue>(Maybe<TValue>, Func<Error>)

Convert a Maybe<TValue> to a Result<TValue> with a default error in case of None.

public static Result<TValue> MapToResult<TValue>(Maybe<TValue> maybe, Func<Error> errorFunc)

Type Parameters

TValue

Parameters

maybe Maybe<TValue>

errorFunc Func<Error>

Returns

Result<TValue>

MapToResult<TValue>(Maybe<TValue>, Func<Task<Error>>)

public static Task<Result<TValue>> MapToResult<TValue>(Maybe<TValue> maybe, Func<Task<Error>> errorFunc)

Type Parameters

TValue

Parameters

maybe Maybe<TValue>

errorFunc Func<Task<Error>>

Returns

Task<Result<TValue>>