Table of Contents

Class Result<TSuccess, TFailure>

Namespace
ZeroC.Slice
Assembly
ZeroC.Slice.Codec.dll

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

TSuccess

The success type.

TFailure

The failure type.

Inheritance
Result<TSuccess, TFailure>
Implements
IEquatable<Result<TSuccess, TFailure>>
Derived
Result<TSuccess, TFailure>.Failure
Result<TSuccess, TFailure>.Success
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

success Action<Result<TSuccess, TFailure>.Success>
failure Action<Result<TSuccess, TFailure>.Failure>

MatchFailure(Action<Failure>, Action)

public abstract void MatchFailure(Action<Result<TSuccess, TFailure>.Failure> failure, Action @else)

Parameters

failure Action<Result<TSuccess, TFailure>.Failure>
else Action

MatchFailure<TMatchOutput>(Func<Failure, TMatchOutput>, Func<TMatchOutput>)

public abstract TMatchOutput MatchFailure<TMatchOutput>(Func<Result<TSuccess, TFailure>.Failure, TMatchOutput> failure, Func<TMatchOutput> @else)

Parameters

failure Func<Result<TSuccess, TFailure>.Failure, TMatchOutput>
else Func<TMatchOutput>

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

state TState
failure Action<TState, Result<TSuccess, TFailure>.Failure>
else Action<TState>

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

state TState
failure Func<TState, Result<TSuccess, TFailure>.Failure, TMatchOutput>
else Func<TState, TMatchOutput>

Returns

TMatchOutput

Type Parameters

TState
TMatchOutput

MatchSuccess(Action<Success>, Action)

public abstract void MatchSuccess(Action<Result<TSuccess, TFailure>.Success> success, Action @else)

Parameters

success Action<Result<TSuccess, TFailure>.Success>
else Action

MatchSuccess<TMatchOutput>(Func<Success, TMatchOutput>, Func<TMatchOutput>)

public abstract TMatchOutput MatchSuccess<TMatchOutput>(Func<Result<TSuccess, TFailure>.Success, TMatchOutput> success, Func<TMatchOutput> @else)

Parameters

success Func<Result<TSuccess, TFailure>.Success, TMatchOutput>
else Func<TMatchOutput>

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

state TState
success Action<TState, Result<TSuccess, TFailure>.Success>
else Action<TState>

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

state TState
success Func<TState, Result<TSuccess, TFailure>.Success, TMatchOutput>
else Func<TState, TMatchOutput>

Returns

TMatchOutput

Type Parameters

TState
TMatchOutput

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

success Func<Result<TSuccess, TFailure>.Success, TMatchOutput>
failure Func<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

state TState
success Action<TState, Result<TSuccess, TFailure>.Success>
failure Action<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

state TState
success Func<TState, Result<TSuccess, TFailure>.Success, TMatchOutput>
failure Func<TState, Result<TSuccess, TFailure>.Failure, TMatchOutput>

Returns

TMatchOutput

Type Parameters

TState
TMatchOutput

UnwrapFailure()

public abstract Result<TSuccess, TFailure>.Failure UnwrapFailure()

Returns

Result<TSuccess, TFailure>.Failure

UnwrapSuccess()

public abstract Result<TSuccess, TFailure>.Success UnwrapSuccess()

Returns

Result<TSuccess, TFailure>.Success

Operators

implicit operator Result<TSuccess, TFailure>(TSuccess)

public static implicit operator Result<TSuccess, TFailure>(TSuccess value)

Parameters

value TSuccess

Returns

Result<TSuccess, TFailure>

implicit operator Result<TSuccess, TFailure>(TFailure)

public static implicit operator Result<TSuccess, TFailure>(TFailure value)

Parameters

value TFailure

Returns

Result<TSuccess, TFailure>