Class MaybeResultInterop

Namespace
REslava.Result.AdvancedPatterns
Assembly
REslava.Result.dll

Bidirectional bridge between Maybe<T> and Result<TValue>.

public static class MaybeResultInterop
Inheritance
MaybeResultInterop
Inherited Members

Methods

ToMaybe<T>(Result<T>)

Converts a Result to a Maybe. Error information is discarded on failure — use when failure is representable as absence rather than error detail.

public static Maybe<T> ToMaybe<T>(this Result<T> result)

Parameters

result Result<T>

Returns

Maybe<T>

Type Parameters

T

Examples

Result<User> result = GetUser(id);
Maybe<User> maybe = result.ToMaybe(); // None if failed, Some(user) if succeeded

ToResult<T>(Maybe<T>, IError)

Converts a Maybe to a Result using a static error when the Maybe is None.

public static Result<T> ToResult<T>(this Maybe<T> maybe, IError error)

Parameters

maybe Maybe<T>
error IError

Returns

Result<T>

Type Parameters

T

Examples

Result<User> result = maybeUser.ToResult(new NotFoundError("User", id));

ToResult<T>(Maybe<T>, Func<IError>)

Converts a Maybe to a Result using a lazy error factory when the Maybe is None.

public static Result<T> ToResult<T>(this Maybe<T> maybe, Func<IError> errorFactory)

Parameters

maybe Maybe<T>
errorFactory Func<IError>

Returns

Result<T>

Type Parameters

T

Examples

Maybe<User> maybe = FindUser(id);
Result<User> result = maybe.ToResult(() => new NotFoundError("User", id));

ToResult<T>(Maybe<T>, string)

Converts a Maybe to a Result using an error message when the Maybe is None.

public static Result<T> ToResult<T>(this Maybe<T> maybe, string errorMessage)

Parameters

maybe Maybe<T>
errorMessage string

Returns

Result<T>

Type Parameters

T

Examples

Result<User> result = maybeUser.ToResult("User not found");