MaybeExtensions
Namespace: Bogoware.Monads
public static class MaybeExtensions
Inheritance Object → MaybeExtensions
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
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
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>>