added Extend extension methods generation
This commit is contained in:
@@ -7,7 +7,13 @@ internal enum ResultState : byte
|
||||
|
||||
public readonly partial struct Result : IEquatable<Result>
|
||||
{
|
||||
internal SuccessUnit Value => new();
|
||||
[SuppressMessage("Performance", "CA1822:Mark members as static", Justification = "Simplified source generation")]
|
||||
internal SuccessUnit Value
|
||||
{
|
||||
[Pure, MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
get => new();
|
||||
}
|
||||
|
||||
internal readonly Error? Error;
|
||||
internal readonly ResultState State;
|
||||
|
||||
@@ -36,12 +42,18 @@ public readonly partial struct Result : IEquatable<Result>
|
||||
public static Result<(T1, T2, T3, T4, T5)> Success<T1, T2, T3, T4, T5>(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5) => new((value1, value2, value3, value4, value5));
|
||||
|
||||
|
||||
[Pure, MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Result Failure(string error) => Error.New(error ?? throw new ArgumentNullException(nameof(error)));
|
||||
|
||||
[Pure, MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Result Failure(Error error) => new(error ?? throw new ArgumentNullException(nameof(error)));
|
||||
|
||||
[Pure, MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Result Failure(Exception exception) => new(Error.New(exception) ?? throw new ArgumentNullException(nameof(exception)));
|
||||
|
||||
[Pure, MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Result<T> Failure<T>(string error) => Error.New(error ?? throw new ArgumentNullException(nameof(error)));
|
||||
|
||||
[Pure, MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Result<T> Failure<T>(Error error) => new(error ?? throw new ArgumentNullException(nameof(error)));
|
||||
|
||||
@@ -66,13 +78,13 @@ public readonly partial struct Result : IEquatable<Result>
|
||||
[Pure] public bool IsSuccess => Error is null;
|
||||
[Pure] public bool IsFailure => Error is not null;
|
||||
|
||||
[Pure] public bool Success([MaybeNullWhen(false)]out SuccessUnit? u, [MaybeNullWhen(true), NotNullWhen(false)]out Error? error)
|
||||
[Pure] public bool TryGetValue([MaybeNullWhen(false)]out SuccessUnit? u, [MaybeNullWhen(true), NotNullWhen(false)]out Error? error)
|
||||
{
|
||||
switch (State)
|
||||
{
|
||||
case ResultState.Success:
|
||||
u = new SuccessUnit();
|
||||
error = default;
|
||||
error = null;
|
||||
return true;
|
||||
|
||||
case ResultState.Error:
|
||||
@@ -161,13 +173,13 @@ public readonly struct Result<T> : IEquatable<Result<T>>
|
||||
[Pure] public bool IsSuccess => State == ResultState.Success;
|
||||
[Pure] public bool IsFailure => State == ResultState.Error;
|
||||
|
||||
[Pure] public bool Success([MaybeNullWhen(false)]out T value, [MaybeNullWhen(true), NotNullWhen(false)]out Error? error)
|
||||
[Pure] public bool TryGetValue([MaybeNullWhen(false)]out T value, [MaybeNullWhen(true), NotNullWhen(false)]out Error? error)
|
||||
{
|
||||
switch (State)
|
||||
{
|
||||
case ResultState.Success:
|
||||
value = Value;
|
||||
error = default;
|
||||
error = null;
|
||||
return true;
|
||||
|
||||
case ResultState.Error:
|
||||
|
||||
Reference in New Issue
Block a user