Refactored Option<T> to have opertator lifting and removed ref struct for now.
All checks were successful
Build NuGet / build (push) Successful in 1m43s
All checks were successful
Build NuGet / build (push) Successful in 1m43s
This commit is contained in:
46
Functional/Result.cs
Normal file
46
Functional/Result.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
// 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);
|
||||
|
||||
// }
|
||||
Reference in New Issue
Block a user