DataResult

sealed class DataResult<out T>

The outcome of a database operation: a value, or the failure that replaced it.

The result style - dbResult, transactionResult and asResult - returns one for the failures the database reports: a violated constraint, a deadlock, a routine's RAISE EXCEPTION, a timeout. A failure that means the calling code is wrong is thrown instead.

Type Parameters

T

The type of the value carried on success.

Inheritors

Constructors

Link copied to clipboard
protected constructor()

Types

Link copied to clipboard
data class Failure(val error: OctaviusException) : DataResult<Nothing>

The database reported error and the operation produced no value.

Link copied to clipboard
data class Success<out T>(val value: T) : DataResult<T>

The operation completed and produced value.

Functions

Link copied to clipboard
inline fun <R, T : R> DataResult<T>.getOrElse(onFailure: (DataResult.Failure) -> R): R

Returns the carried value, or what onFailure makes of the whole DataResult.Failure - which it can return as it is, for an early exit:

Link copied to clipboard
fun <T> DataResult<T>.getOrNull(): T?

Returns the carried value, or null where the operation failed.

Link copied to clipboard

Returns the carried value, or throws the carried failure.

Link copied to clipboard
inline fun <T, R> DataResult<T>.map(transform: (T) -> R): DataResult<R>

Applies transform to the value of a DataResult.Success, and returns a DataResult.Failure as it stands.

Link copied to clipboard
inline fun <T> DataResult<T>.onFailure(action: (OctaviusException) -> Unit): DataResult<T>

Runs action on the failure if this is a DataResult.Failure, and returns this result either way.

Link copied to clipboard
inline fun <T> DataResult<T>.onSuccess(action: (T) -> Unit): DataResult<T>

Runs action on the carried value if this is a DataResult.Success, and returns this result either way.