Files
Toolkit2/Toolkit.Foundation/Result1.cs
T
2024-07-23 18:20:58 +01:00

20 lines
693 B
C#

namespace Toolkit.Foundation;
public record Result(bool IsSuccess, Error Error)
{
public bool IsFailure => !IsSuccess;
public static Result Success() => new(true, Error.None);
public static Result<TValue> Success<TValue>(TValue value) => new(value, true, Error.None);
public static Result Failure(Error error) => new(false, error);
public static Result<TValue> Failure<TValue>(Error error) => new(default, false, error);
public static Result Create(bool condition) => condition ? Success() : Failure(Error.ConditionNotMet);
public static Result<TValue> Create<TValue>(TValue? value) => value is not null ? Success(value) : Failure<TValue>(Error.Null);
}