Class Result<TSuccess, TFailure>
A discriminated union that represents either a success or a failure. It is typically used as the return type of Slice operations.
[Union]
public abstract record Result<TSuccess, TFailure> : IEquatable<Result<TSuccess, TFailure>>
Type Parameters
TSuccessThe success type.
TFailureThe failure type.
- Inheritance
-
Result<TSuccess, TFailure>
- Implements
-
IEquatable<Result<TSuccess, TFailure>>
- Derived
- Inherited Members
Remarks
The Slice Result type (a built-in generic type) maps to this generic class in C#. The Dunet source generator provides many methods (Match, MatchSuccess, MatchFailure, MatchAsync, UnwrapSuccess, UnwrapFailure and more) for this generic class. See https://github.com/domn1995/dunet for more information.
Methods
Match(Action<Success>, Action<Failure>)
public abstract void Match(Action<Result<TSuccess, TFailure>.Success> success, Action<Result<TSuccess, TFailure>.Failure> failure)
Parameters
successAction<Result<TSuccess, TFailure>.Success>failureAction<Result<TSuccess, TFailure>.Failure>
MatchFailure(Action<Failure>, Action)
public abstract void MatchFailure(Action<Result<TSuccess, TFailure>.Failure> failure, Action @else)
Parameters
MatchFailure<TMatchOutput>(Func<Failure, TMatchOutput>, Func<TMatchOutput>)
public abstract TMatchOutput MatchFailure<TMatchOutput>(Func<Result<TSuccess, TFailure>.Failure, TMatchOutput> failure, Func<TMatchOutput> @else)
Parameters
Returns
- TMatchOutput
Type Parameters
TMatchOutput
MatchFailure<TState>(TState, Action<TState, Failure>, Action<TState>)
public abstract void MatchFailure<TState>(TState state, Action<TState, Result<TSuccess, TFailure>.Failure> failure, Action<TState> @else)
Parameters
Type Parameters
TState
MatchFailure<TState, TMatchOutput>(TState, Func<TState, Failure, TMatchOutput>, Func<TState, TMatchOutput>)
public abstract TMatchOutput MatchFailure<TState, TMatchOutput>(TState state, Func<TState, Result<TSuccess, TFailure>.Failure, TMatchOutput> failure, Func<TState, TMatchOutput> @else)
Parameters
stateTStatefailureFunc<TState, Result<TSuccess, TFailure>.Failure, TMatchOutput>elseFunc<TState, TMatchOutput>
Returns
- TMatchOutput
Type Parameters
TStateTMatchOutput
MatchSuccess(Action<Success>, Action)
public abstract void MatchSuccess(Action<Result<TSuccess, TFailure>.Success> success, Action @else)
Parameters
MatchSuccess<TMatchOutput>(Func<Success, TMatchOutput>, Func<TMatchOutput>)
public abstract TMatchOutput MatchSuccess<TMatchOutput>(Func<Result<TSuccess, TFailure>.Success, TMatchOutput> success, Func<TMatchOutput> @else)
Parameters
Returns
- TMatchOutput
Type Parameters
TMatchOutput
MatchSuccess<TState>(TState, Action<TState, Success>, Action<TState>)
public abstract void MatchSuccess<TState>(TState state, Action<TState, Result<TSuccess, TFailure>.Success> success, Action<TState> @else)
Parameters
Type Parameters
TState
MatchSuccess<TState, TMatchOutput>(TState, Func<TState, Success, TMatchOutput>, Func<TState, TMatchOutput>)
public abstract TMatchOutput MatchSuccess<TState, TMatchOutput>(TState state, Func<TState, Result<TSuccess, TFailure>.Success, TMatchOutput> success, Func<TState, TMatchOutput> @else)
Parameters
stateTStatesuccessFunc<TState, Result<TSuccess, TFailure>.Success, TMatchOutput>elseFunc<TState, TMatchOutput>
Returns
- TMatchOutput
Type Parameters
TStateTMatchOutput
Match<TMatchOutput>(Func<Success, TMatchOutput>, Func<Failure, TMatchOutput>)
public abstract TMatchOutput Match<TMatchOutput>(Func<Result<TSuccess, TFailure>.Success, TMatchOutput> success, Func<Result<TSuccess, TFailure>.Failure, TMatchOutput> failure)
Parameters
successFunc<Result<TSuccess, TFailure>.Success, TMatchOutput>failureFunc<Result<TSuccess, TFailure>.Failure, TMatchOutput>
Returns
- TMatchOutput
Type Parameters
TMatchOutput
Match<TState>(TState, Action<TState, Success>, Action<TState, Failure>)
public abstract void Match<TState>(TState state, Action<TState, Result<TSuccess, TFailure>.Success> success, Action<TState, Result<TSuccess, TFailure>.Failure> failure)
Parameters
stateTStatesuccessAction<TState, Result<TSuccess, TFailure>.Success>failureAction<TState, Result<TSuccess, TFailure>.Failure>
Type Parameters
TState
Match<TState, TMatchOutput>(TState, Func<TState, Success, TMatchOutput>, Func<TState, Failure, TMatchOutput>)
public abstract TMatchOutput Match<TState, TMatchOutput>(TState state, Func<TState, Result<TSuccess, TFailure>.Success, TMatchOutput> success, Func<TState, Result<TSuccess, TFailure>.Failure, TMatchOutput> failure)
Parameters
stateTStatesuccessFunc<TState, Result<TSuccess, TFailure>.Success, TMatchOutput>failureFunc<TState, Result<TSuccess, TFailure>.Failure, TMatchOutput>
Returns
- TMatchOutput
Type Parameters
TStateTMatchOutput
UnwrapFailure()
public abstract Result<TSuccess, TFailure>.Failure UnwrapFailure()
Returns
UnwrapSuccess()
public abstract Result<TSuccess, TFailure>.Success UnwrapSuccess()
Returns
Operators
implicit operator Result<TSuccess, TFailure>(TSuccess)
public static implicit operator Result<TSuccess, TFailure>(TSuccess value)
Parameters
valueTSuccess
Returns
- Result<TSuccess, TFailure>
implicit operator Result<TSuccess, TFailure>(TFailure)
public static implicit operator Result<TSuccess, TFailure>(TFailure value)
Parameters
valueTFailure
Returns
- Result<TSuccess, TFailure>