Package-level declarations

Properties

Link copied to clipboard
@get:JvmName(name = "flattenNestedFailureAlias")
val <Ok : Any, Err : Any, Oki : Ok, Oko : Ok> Outcome<Oko, Outcome<Oki, Err>>.flatten: Outcome<Ok, Err>

An overloaded alias for Outcome.flattenNestedFailure.

@get:JvmName(name = "flattenNestedBothAlias")
val <Ok : Any, Err : Any, Oks : Ok, Ers : Err, Okf : Ok, Erf : Err> Outcome<Outcome<Oks, Ers>, Outcome<Okf, Erf>>.flatten: Outcome<Ok, Err>

An overloaded alias for Outcome.flattenNestedBoth.

@get:JvmName(name = "flattenNestedSuccessAlias")
val <Ok : Any, Err : Any, Eri : Err, Ero : Err> Outcome<Outcome<Ok, Eri>, Ero>.flatten: Outcome<Ok, Err>

An overloaded alias for Outcome.flattenNestedSuccess.

Functions

Link copied to clipboard
inline fun <Ok : Any, Error : Any> Iterable<Outcome<Ok, Error>>.aggregate(reduce: (List<Error>) -> Error): Outcome<List<Ok>, Error>
Link copied to clipboard
inline fun <Ok : Any, Error : Any> Outcome<Ok, Error>.andIf(predicate: (Ok) -> Boolean, catch: (throwable: Throwable) -> Outcome<Ok, Error> = ::rethrow, success: RaiseScope<Error>.(Ok) -> Ok): Outcome<Ok, Error>

Transforms the encapsulated value if this instance represents success, and the predicate returns true. If predicate is false, the Outcome.Success is left unchanged.

Link copied to clipboard
inline fun <In : Any, Out : Any, Error : Any> Outcome<In, Error>.andThen(catch: (throwable: Throwable) -> Outcome<Out, Error> = ::rethrow, success: RaiseScope<Error>.(In) -> Out): Outcome<Out, Error>

Transforms the encapsulated value if this instance represents success.

Link copied to clipboard
infix inline fun <Ok : Any, Error : Any> Outcome<Ok, Error>.coerceToFailure(falter: (Ok) -> Error): Outcome.Failure<Error>

Returns a new Outcome.Failure, after applying falter to the Outcome.Success value.

Link copied to clipboard
infix inline fun <Ok : Any, Error : Any> Outcome<Ok, Error>.coerceToSuccess(recover: (Error) -> Ok): Outcome.Success<Ok>

Returns a new Outcome.Success, after applying recover to the Outcome.Failure error.

Link copied to clipboard
inline fun <Ok : Any, Error : Any, Output> OutcomeFlow<Ok, Error>.collapse(crossinline success: suspend (Ok) -> Output, crossinline failure: suspend (Error) -> Output): Flow<Output>

Collapse the receiver Outcome into either value or error, using the nearest common Ancestor as the type.

Link copied to clipboard
infix fun <Ok : Any, Error : Any> Outcome<Ok, Error>.errorOrDefault(default: Error): Error
Link copied to clipboard
infix inline fun <Ok : Any, Error : Any> Outcome<Ok, Error>.errorOrElse(faulter: (Ok) -> Error): Error
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
infix inline fun <Ok : Any, Error : Any> Outcome<Ok, Error>.falter(transform: (Ok) -> Error): Outcome.Failure<Error>

An alias for coerceToFailure.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
infix inline fun <Ok : Any, ErrorIn : Any, ErrorOut : Any> Outcome<Ok, ErrorIn>.flatMapFailure(transform: (ErrorIn) -> Outcome<Ok, ErrorOut>): Outcome<Ok, ErrorOut>

Returns a new Outcome, after applying transform to the Outcome.Failure error.

Link copied to clipboard
infix inline fun <In : Any, Out : Any, Error : Any> Outcome<In, Error>.flatMapSuccess(transform: (In) -> Outcome<Out, Error>): Outcome<Out, Error>

Returns a new Outcome, after applying transform to the Outcome.Success value.

Link copied to clipboard
inline fun <Ok : Any, Error : Any, Output> Outcome<Ok, Error>.fold(success: (Ok) -> Output, failure: (Error) -> Output): Output

Fold the caller into some Output.

Link copied to clipboard
infix fun <Ok : Any, Error : Any> Outcome<Ok, Error>.getOrDefault(default: Ok): Ok
Link copied to clipboard
infix inline fun <Ok : Any, Error : Any> Outcome<Ok, Error>.getOrElse(recover: (Error) -> Ok): Ok
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Inverts the Outcome so that the Outcome.Success value becomes the Outcome.Failure error and vice versa.

Link copied to clipboard
infix inline fun <Ok : Any, Error : Any> Outcome<Ok, Error>.isFailure(predicate: (Error) -> Boolean): Boolean
Link copied to clipboard
infix inline fun <Ok : Any, Error : Any> Outcome<Ok, Error>.isSuccess(predicate: (Ok) -> Boolean): Boolean
Link copied to clipboard
inline fun <In : Any, Out : Any, ErrorIn : Any, ErrorOut : Any> Outcome<In, ErrorIn>.map(success: (In) -> Out, failure: (ErrorIn) -> ErrorOut): Outcome<Out, ErrorOut>

Transform an Outcome with either success or failure.

Link copied to clipboard
inline fun <Ok : Any, ErrorIn : Any, ErrorOut : Any> OutcomeFlow<Ok, ErrorIn>.mapEachFailure(crossinline transform: suspend (ErrorIn) -> ErrorOut): OutcomeFlow<Ok, ErrorOut>
Link copied to clipboard
inline fun <In : Any, Out : Any, Error : Any> OutcomeFlow<In, Error>.mapEachSuccess(crossinline transform: suspend (In) -> Out): OutcomeFlow<Out, Error>
Link copied to clipboard
infix inline fun <Ok : Any, ErrorIn : Any, ErrorOut : Any> Outcome<Ok, ErrorIn>.mapFailure(transform: (ErrorIn) -> ErrorOut): Outcome<Ok, ErrorOut>

Returns a new Outcome, after applying transform to the Outcome.Failure error.

Link copied to clipboard
infix inline fun <In : Any, Out : Any, Error : Any> Outcome<In, Error>.mapSuccess(transform: (In) -> Out): Outcome<Out, Error>

Returns a new Outcome, after applying transform to the Outcome.Success value.

Link copied to clipboard
inline fun <Ok : Any, Error : Any> OutcomeFlow<Ok, Error>.onEachFailure(crossinline block: suspend (Error) -> Unit): OutcomeFlow<Ok, Error>
Link copied to clipboard
inline fun <Ok : Any, Error : Any> OutcomeFlow<Ok, Error>.onEachSuccess(crossinline block: suspend (Ok) -> Unit): OutcomeFlow<Ok, Error>
Link copied to clipboard
infix inline fun <Ok : Any, Error : Any> Outcome<Ok, Error>.onFailure(block: (Error) -> Unit): Outcome<Ok, Error>
Link copied to clipboard
infix inline fun <Ok : Any, Error : Any> Outcome<Ok, Error>.onSuccess(block: (Ok) -> Unit): Outcome<Ok, Error>
Link copied to clipboard
infix inline fun <Ok : Any, Error : Any> Outcome<Ok, Error>.recover(transform: (Error) -> Ok): Outcome.Success<Ok>

An alias for coerceToSuccess.

Link copied to clipboard
inline fun <Ok : Any, Error : Any, Output> Outcome<Ok, Error>.rfold(failure: (Error) -> Output, success: (Ok) -> Output): Output

Reverse fold is syntax-sugar that swaps the lambda argument order.

Link copied to clipboard
inline fun <Ok : Any, ErrorIn : Any, ErrorOut : Any> Outcome<Ok, ErrorIn>.tryRecover(catch: (throwable: Throwable) -> Outcome<Ok, ErrorOut> = ::rethrow, failure: RaiseScope<ErrorOut>.(ErrorIn) -> Ok): Outcome<Ok, ErrorOut>

Transform failure into success.

Link copied to clipboard
infix inline fun <Ok, Error : Any> Outcome<Ok & Any, Error>.unwrap(recover: (Error) -> Ok = { error("Outcome::unwrap threw! Got: $this") }): Ok

Attempt to unwrap Outcome into an Ok value.

Link copied to clipboard
infix inline fun <Ok : Any, Error> Outcome<Ok, Error & Any>.unwrapError(faulter: (Ok) -> Error = { error("Outcome::unwrapError threw! Got: $this") }): Error

Attempt to unwrap Outcome into an Ok value.