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 Success(TValue value) => new(value, true, Error.None); public static Result Failure(Error error) => new(false, error); public static Result Failure(Error error) => new(default, false, error); public static Result Create(bool condition) => condition ? Success() : Failure(Error.ConditionNotMet); public static Result Create(TValue? value) => value is not null ? Success(value) : Failure(Error.Null); }