46 lines
1.6 KiB
C#
46 lines
1.6 KiB
C#
// using System.Diagnostics.CodeAnalysis;
|
|
|
|
// namespace SJK.Functional;
|
|
// public interface IResult
|
|
// {
|
|
// bool Ok {get;}
|
|
// bool Error {get;}
|
|
// }
|
|
// public interface IResult<TSuccess> : IResult
|
|
// {
|
|
// }
|
|
// public interface IResult<TSuccess,TError> : IResult<TSuccess>;
|
|
|
|
// public readonly struct Result : IResult
|
|
// {
|
|
// private readonly bool _isSuccess;
|
|
// public readonly bool Ok =>_isSuccess;
|
|
// public readonly bool Error =>!_isSuccess;
|
|
// }
|
|
// public readonly struct Result<TSuccess> : IResult<TSuccess>
|
|
// {
|
|
// readonly private TSuccess _success;
|
|
// private readonly bool _isSuccess;
|
|
// [MemberNotNullWhen(true,nameof(_success))]
|
|
// public readonly bool Ok =>_isSuccess;
|
|
// [MemberNotNullWhen(false,nameof(_success))]
|
|
// public readonly bool Error =>!_isSuccess;
|
|
// public readonly TResult Match<TResult>(Func<TSuccess,TResult> success, Func<TResult> error)
|
|
// => Ok?success(_success):error();
|
|
// }
|
|
// public readonly struct Result<TSuccess,TError> : IResult<TSuccess,TError>
|
|
// {
|
|
// private readonly TSuccess? _success;
|
|
// private readonly TError? _error;
|
|
// private readonly bool _isSuccess;
|
|
// [MemberNotNullWhen(true,nameof(_success))]
|
|
// [MemberNotNullWhen(false,nameof(_error))]
|
|
// public readonly bool Ok =>_isSuccess;
|
|
// [MemberNotNullWhen(true,nameof(_error))]
|
|
// [MemberNotNullWhen(false,nameof(_success))]
|
|
// public readonly bool Error =>!_isSuccess;
|
|
|
|
// public readonly TResult Match<TResult>(Func<TSuccess,TResult> success, Func<TError,TResult> error)
|
|
// => Ok?success(_success):error(_error);
|
|
|
|
// } |