Refactored Option<T> to have opertator lifting and removed ref struct for now.
All checks were successful
Build NuGet / build (push) Successful in 1m43s

This commit is contained in:
2026-08-07 12:58:11 -04:00
parent 1d53af4b46
commit 262b76c4d5
13 changed files with 1123 additions and 262 deletions

46
Functional/Result.cs Normal file
View 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);
// }