Result<TValue>
Namespace: Bogoware.Monads
Represents the result of an operation that may fail.
public struct Result<TValue>
Type Parameters
TValue
Inheritance Object → ValueType → Result<TValue>
Implements IResult<TValue>, IResult, IEquatable<Result<TValue>>, IEnumerable<TValue>, IEnumerable
Attributes NullableContextAttribute, NullableAttribute, IsReadOnlyAttribute
Properties
Value
Returns the value if the Result<TValue>.Result<TValue>.IsSuccess otherwise throw an ResultFailedException. This method should be avoided in favor of pure functional composition style.
public TValue Value { get; }
Property Value
TValue
Exceptions
Error
Returns the error if the Result<TValue>.Result<TValue>.IsFailure otherwise throw an ResultSuccessException. This method should be avoided in favor of pure functional composition style.
public Error Error { get; }
Property Value
Exceptions
IsSuccess
Is true if the Result<TValue> is successful, otherwise false.
public bool IsSuccess { get; }
Property Value
IsFailure
Is true if the Result<TValue> is failed, otherwise false.
public bool IsFailure { get; }
Property Value
Constructors
Result(TValue)
Initializes a successful instance of the Result<TValue> with the given value.
Result(TValue value)
Parameters
value TValue
Result(Error)
Initializes a failed instance of the Result<TValue> with the given error.
Result(Error error)
Parameters
error Error
Result(Result<TValue>)
Result(Result<TValue> result)
Parameters
result Result<TValue>
Methods
GetValueOrThrow()
TValue GetValueOrThrow()
Returns
TValue
GetErrorOrThrow()
Error GetErrorOrThrow()
Returns
Map<TNewValue>(TNewValue)
In case of success returns the newValue..
Result<TNewValue> Map<TNewValue>(TNewValue newValue)
Type Parameters
TNewValue
Parameters
newValue TNewValue
Returns
Result<TNewValue>
Map<TNewValue>(Func<TNewValue>)
In case of success returns the functor result.
Result<TNewValue> Map<TNewValue>(Func<TNewValue> functor)
Type Parameters
TNewValue
Parameters
functor Func<TNewValue>
Returns
Result<TNewValue>
Map<TNewValue>(Func<Task<TNewValue>>)
Task<Result<TNewValue>> Map<TNewValue>(Func<Task<TNewValue>> functor)
Type Parameters
TNewValue
Parameters
functor Func<Task<TNewValue>>
Returns
Task<Result<TNewValue>>
Map<TNewValue>(Func<TValue, TNewValue>)
In case of success transform the original value by applying the functor.
Result<TNewValue> Map<TNewValue>(Func<TValue, TNewValue> functor)
Type Parameters
TNewValue
Parameters
functor Func<TValue, TNewValue>
Returns
Result<TNewValue>
Map<TNewValue>(Func<TValue, Task<TNewValue>>)
Task<Result<TNewValue>> Map<TNewValue>(Func<TValue, Task<TNewValue>> functor)
Type Parameters
TNewValue
Parameters
functor Func<TValue, Task<TNewValue>>
Returns
Task<Result<TNewValue>>
Map(Action<TValue>)
Result<Unit> Map(Action<TValue> functor)
Parameters
functor Action<TValue>
Returns
Map(Func<TValue, Task>)
Task<Result<Unit>> Map(Func<TValue, Task> functor)
Parameters
functor Func<TValue, Task>
Returns
MapError(Error)
In case of failure return the newError.
Result<TValue> MapError(Error newError)
Parameters
newError Error
Returns
MapError<TNewError>(Func<TNewError>)
In case of failure return the newErrorFunctor result.
Result<TValue> MapError<TNewError>(Func<TNewError> newErrorFunctor)
Type Parameters
TNewError
Parameters
newErrorFunctor Func<TNewError>
Returns
MapError<TNewError>(Func<Error, TNewError>)
Result<TValue> MapError<TNewError>(Func<Error, TNewError> newErrorFunctor)
Type Parameters
TNewError
Parameters
newErrorFunctor Func<Error, TNewError>
Returns
MapError<TNewError>(Func<Task<TNewError>>)
Task<Result<TValue>> MapError<TNewError>(Func<Task<TNewError>> newErrorFunctor)
Type Parameters
TNewError
Parameters
newErrorFunctor Func<Task<TNewError>>
Returns
Task<Result<TValue>>
MapError<TNewError>(Func<Error, Task<TNewError>>)
Task<Result<TValue>> MapError<TNewError>(Func<Error, Task<TNewError>> newErrorFunctor)
Type Parameters
TNewError
Parameters
newErrorFunctor Func<Error, Task<TNewError>>
Returns
Task<Result<TValue>>
Bind<TNewValue>(Result<TNewValue>)
In case of success return the newResult.
Result<TNewValue> Bind<TNewValue>(Result<TNewValue> newResult)
Type Parameters
TNewValue
Parameters
newResult Result<TNewValue>
Returns
Result<TNewValue>
Bind<TNewValue>(Func<Result<TNewValue>>)
In case of success return the functor result.
Result<TNewValue> Bind<TNewValue>(Func<Result<TNewValue>> functor)
Type Parameters
TNewValue
Parameters
functor Func<Result<TNewValue>>
Returns
Result<TNewValue>
Bind<TNewValue>(Func<Task<Result<TNewValue>>>)
Task<Result<TNewValue>> Bind<TNewValue>(Func<Task<Result<TNewValue>>> functor)
Type Parameters
TNewValue
Parameters
functor Func<Task<Result<TNewValue>>>
Returns
Task<Result<TNewValue>>
Bind<TNewValue>(Func<TValue, Result<TNewValue>>)
Result<TNewValue> Bind<TNewValue>(Func<TValue, Result<TNewValue>> functor)
Type Parameters
TNewValue
Parameters
functor Func<TValue, Result<TNewValue>>
Returns
Result<TNewValue>
Bind<TNewValue>(Func<TValue, Task<Result<TNewValue>>>)
Task<Result<TNewValue>> Bind<TNewValue>(Func<TValue, Task<Result<TNewValue>>> functor)
Type Parameters
TNewValue
Parameters
functor Func<TValue, Task<Result<TNewValue>>>
Returns
Task<Result<TNewValue>>
Match<TResult>(Func<TValue, TResult>, TResult)
In case of success evaluate the successful functor, otherwise returns failure.
TResult Match<TResult>(Func<TValue, TResult> successful, TResult failure)
Type Parameters
TResult
Parameters
successful Func<TValue, TResult>
failure TResult
Returns
TResult
Match<TResult>(Func<TValue, Task<TResult>>, TResult)
Task<TResult> Match<TResult>(Func<TValue, Task<TResult>> successful, TResult failure)
Type Parameters
TResult
Parameters
successful Func<TValue, Task<TResult>>
failure TResult
Returns
Task<TResult>
Match<TResult>(Func<TValue, TResult>, Func<Error, TResult>)
TResult Match<TResult>(Func<TValue, TResult> successful, Func<Error, TResult> failure)
Type Parameters
TResult
Parameters
successful Func<TValue, TResult>
failure Func<Error, TResult>
Returns
TResult
Match<TResult>(Func<TValue, Task<TResult>>, Func<Error, TResult>)
Task<TResult> Match<TResult>(Func<TValue, Task<TResult>> successful, Func<Error, TResult> failure)
Type Parameters
TResult
Parameters
successful Func<TValue, Task<TResult>>
failure Func<Error, TResult>
Returns
Task<TResult>
Match<TResult>(Func<TValue, TResult>, Func<Error, Task<TResult>>)
Task<TResult> Match<TResult>(Func<TValue, TResult> successful, Func<Error, Task<TResult>> failure)
Type Parameters
TResult
Parameters
successful Func<TValue, TResult>
failure Func<Error, Task<TResult>>
Returns
Task<TResult>
Match<TResult>(Func<TValue, Task<TResult>>, Func<Error, Task<TResult>>)
Task<TResult> Match<TResult>(Func<TValue, Task<TResult>> successful, Func<Error, Task<TResult>> failure)
Type Parameters
TResult
Parameters
successful Func<TValue, Task<TResult>>
failure Func<Error, Task<TResult>>
Returns
Task<TResult>
RecoverWith(TValue)
Result<TValue> RecoverWith(TValue newValue)
Parameters
newValue TValue
Returns
RecoverWith(Func<TValue>)
Result<TValue> RecoverWith(Func<TValue> functor)
Parameters
functor Func<TValue>
Returns
RecoverWith(Func<Error, TValue>)
Result<TValue> RecoverWith(Func<Error, TValue> functor)
Parameters
functor Func<Error, TValue>
Returns
RecoverWith(Func<Task<TValue>>)
Task<Result<TValue>> RecoverWith(Func<Task<TValue>> functor)
Parameters
functor Func<Task<TValue>>
Returns
Task<Result<TValue>>
RecoverWith(Func<Error, Task<TValue>>)
Task<Result<TValue>> RecoverWith(Func<Error, Task<TValue>> functor)
Parameters
functor Func<Error, Task<TValue>>
Returns
Task<Result<TValue>>
Ensure(Func<TValue, Boolean>, Error)
If the Result<TValue>.Result<TValue>.IsSuccess is true then evaluate the predicate
and return the Result<TValue> if the predicate is true, otherwise return
a new Result<TValue> provided by error.
Result<TValue> Ensure(Func<TValue, bool> predicate, Error error)
Parameters
predicate Func<TValue, Boolean>
error Error
Returns
Ensure(Func<TValue, Task<Boolean>>, Error)
Task<Result<TValue>> Ensure(Func<TValue, Task<bool>> predicate, Error error)
Parameters
predicate Func<TValue, Task<Boolean>>
error Error
Returns
Task<Result<TValue>>
Ensure(Func<TValue, Boolean>, Func<TValue, Error>)
Result<TValue> Ensure(Func<TValue, bool> predicate, Func<TValue, Error> error)
Parameters
predicate Func<TValue, Boolean>
error Func<TValue, Error>
Returns
Ensure(Func<TValue, Task<Boolean>>, Func<TValue, Error>)
Task<Result<TValue>> Ensure(Func<TValue, Task<bool>> predicate, Func<TValue, Error> error)
Parameters
predicate Func<TValue, Task<Boolean>>
error Func<TValue, Error>
Returns
Task<Result<TValue>>
Ensure(Func<TValue, Boolean>, Func<TValue, Task<Error>>)
Task<Result<TValue>> Ensure(Func<TValue, bool> predicate, Func<TValue, Task<Error>> error)
Parameters
predicate Func<TValue, Boolean>
error Func<TValue, Task<Error>>
Returns
Task<Result<TValue>>
Ensure(Func<TValue, Task<Boolean>>, Func<TValue, Task<Error>>)
Task<Result<TValue>> Ensure(Func<TValue, Task<bool>> predicate, Func<TValue, Task<Error>> error)
Parameters
predicate Func<TValue, Task<Boolean>>
error Func<TValue, Task<Error>>
Returns
Task<Result<TValue>>
IfSuccess(Action<TValue>)
Execute the action if the Result<TValue>.Result<TValue>.IsSuccess is true.
Result<TValue> IfSuccess(Action<TValue> action)
Parameters
action Action<TValue>
Returns
IfSuccess(Func<TValue, Task>)
Task<Result<TValue>> IfSuccess(Func<TValue, Task> action)
Parameters
action Func<TValue, Task>
Returns
Task<Result<TValue>>
IfFailure(Action<Error>)
Execute the action if the Result<TValue>.Result<TValue>.IsFailure is true.
Result<TValue> IfFailure(Action<Error> action)
Parameters
action Action<Error>
Returns
IfFailure(Func<Error, Task>)
Task<Result<TValue>> IfFailure(Func<Error, Task> action)
Parameters
action Func<Error, Task>
Returns
Task<Result<TValue>>
Equals(Result<TValue>)
bool Equals(Result<TValue> other)
Parameters
other Result<TValue>
Returns
GetEnumerator()
IEnumerator<TValue> GetEnumerator()
Returns
IEnumerator<TValue>
Equals(Object)
bool Equals(object obj)
Parameters
obj Object
Returns
GetHashCode()
int GetHashCode()