EagerEffectScope

interface EagerEffectScope<in R>

Context of the EagerEffect DSL.

Functions

Link copied to clipboard
open suspend fun <B> Either<R, B>.bind(): B

Folds Either into EagerEffect, by returning B or a shift with R.

open suspend fun <B> Validated<R, B>.bind(): B

Folds Validated into EagerEffect, by returning B or a shift with R.

open suspend fun <B> EagerEffect<R, B>.bind(): B

Runs the EagerEffect to finish, returning B or shift in case of R.

open suspend fun <B> Option<B>.bind(shift: () -> R): B

Folds Option into EagerEffect, by returning B or a transforming None into R and shifting the result.

open suspend fun <B> Result<B>.bind(transform: (Throwable) -> R): B

Folds Result into EagerEffect, by returning B or a transforming Throwable into R and shifting the result.

Link copied to clipboard
open suspend fun ensure(condition: Boolean, shift: () -> R)

ensure that condition is true, if it's false it will shift with the provided value R. Monadic version of kotlin.require.

Link copied to clipboard
abstract suspend fun <B> shift(r: R): B

Short-circuit the EagerEffect computation with value R.

Inheritors

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Extensions

Link copied to clipboard
suspend fun <R, B : Any> EagerEffectScope<R>.ensureNotNull(value: B?, shift: () -> R): B

Ensure that value is not null. if it's non-null it will be smart-casted and returned if it's false it will shift with the provided value R. Monadic version of kotlin.requireNotNull.