Skip to main content

Result<TValue>

Namespace: Bogoware.Monads

Represents the result of an operation that may fail.

public struct Result<TValue>

Type Parameters

TValue

Inheritance ObjectValueTypeResult<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

ResultFailedException

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

Error

Exceptions

ResultFailedException

IsSuccess

Is true if the Result<TValue> is successful, otherwise false.

public bool IsSuccess { get; }

Property Value

Boolean

IsFailure

Is true if the Result<TValue> is failed, otherwise false.

public bool IsFailure { get; }

Property Value

Boolean

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

Error

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

Result<Unit>

Map(Func<TValue, Task>)

Task<Result<Unit>> Map(Func<TValue, Task> functor)

Parameters

functor Func<TValue, Task>

Returns

Task<Result<Unit>>

MapError(Error)

In case of failure return the newError.

Result<TValue> MapError(Error newError)

Parameters

newError Error

Returns

Result<TValue>

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

Result<TValue>

MapError<TNewError>(Func<Error, TNewError>)

Result<TValue> MapError<TNewError>(Func<Error, TNewError> newErrorFunctor)

Type Parameters

TNewError

Parameters

newErrorFunctor Func<Error, TNewError>

Returns

Result<TValue>

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

Result<TValue>

RecoverWith(Func<TValue>)

Result<TValue> RecoverWith(Func<TValue> functor)

Parameters

functor Func<TValue>

Returns

Result<TValue>

RecoverWith(Func<Error, TValue>)

Result<TValue> RecoverWith(Func<Error, TValue> functor)

Parameters

functor Func<Error, TValue>

Returns

Result<TValue>

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

Result<TValue>

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

Result<TValue>

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

Result<TValue>

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

Result<TValue>

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

Boolean

GetEnumerator()

IEnumerator<TValue> GetEnumerator()

Returns

IEnumerator<TValue>

Equals(Object)

bool Equals(object obj)

Parameters

obj Object

Returns

Boolean

GetHashCode()

int GetHashCode()

Returns

Int32