public static Result <TIn> ToResult <TIn>(this Maybe <TIn> maybe, Result.Error error) where TIn : class { if (maybe.HasNoValue) { return(Result.Fail <TIn>(error)); } return(Result.Ok(maybe.Value)); }
public static Result <string> EnsureNotNullOrWhiteSpace(this Maybe <string> maybe, Result.Error error) { return(maybe.ToResult(error) .Ensure(name => !string.IsNullOrWhiteSpace(name), error)); }
public static Result <T> Ensure <T>(this Result <T> result, Func <T, bool> predicate, Result.Error error) { if (result.IsFailure) { return(result); } if (!predicate(result.Value)) { return(Result.Fail <T>(error)); } return(result); }