Skip to main content
Version: 0.9.0

Result<T> struct

A value or a failure. A native failure is returned, never thrown: check Result<T>.IsSuccess, or opt into an exception with Result<T>.ValueOrThrow or Result<T>.EnsureSuccess.

Namespace: Quaternar.Qaros · Assembly: Quaternar.Qaros.dll · Source: QarResult.cs

public readonly struct Result<T>

Type parameters

NameDescription
T

Remarks​

The binding throws only for managed misuse: a null argument, or an ObjectDisposedException for an object already disposed. An async method completes its task with a failed result on a native failure; only managed cancellation cancels the task.

Properties​

MemberDescription
Info
Value
IsSuccess

Info​

public ResultInfo Info { get; }

Value: ResultInfo

Value​

public T Value { get; }

Value: T

Exceptions

ExceptionCondition
InvalidOperationExceptionThe result is a failure.

IsSuccess​

public bool IsSuccess { get; }

Value: bool

Methods​

MemberDescription
Success(ResultInfo, T)
Failure(ResultInfo)
EnsureSuccess()
ValueOrThrow()

Success​

public static Result<T> Success(ResultInfo info, T value)

Parameters

NameTypeDescription
infoResultInfo
valueT

Returns: Result<T>

Failure​

public static Result<T> Failure(ResultInfo info)

Parameters

NameTypeDescription
infoResultInfo

Returns: Result<T>

EnsureSuccess​

public void EnsureSuccess()

Exceptions

ExceptionCondition
NativeCallExceptionThe result is a failure.

ValueOrThrow​

public T ValueOrThrow()

Returns: T

Exceptions

ExceptionCondition
NativeCallExceptionThe result is a failure.