cps

package cps

Type members

Classlikes

object Async
abstract class AsyncCpsExpr[F[_], T](dm: Expr[CpsMonad[F]], prev: Seq[ExprTreeGen])(`evidence$7`: Type[F], `evidence$8`: Type[T]) extends CpsExpr[F, T]
case class AsyncMacroFlags(printCode: Boolean, printTree: Boolean, debugLevel: Int, allowShiftedLambda: Boolean, customValueDiscard: Boolean, warnValueDiscard: Boolean, muted: Boolean)
trait AsyncShift[T]
Companion
object
Companion
class
trait CpsAsyncMonad[F[_]] extends CpsTryMonad[F]

Monad, interpolable with Future.

Monad, interpolable with Future.

trait CpsExpr[F[_], T](monad: Expr[CpsMonad[F]], prev: Seq[ExprTreeGen])(`evidence$1`: Type[F], `evidence$2`: Type[T])
Companion
object
object CpsExpr
Companion
class
trait CpsFulfillingMonad[F[_]] extends CpsAsyncMonad[F]
trait CpsMonad[F[_]]

Basic CpsMonad operations. Implementing this typeclass is enough to use async/await with supports of basic control-flow constructions (if, loops, but no exceptions).

Basic CpsMonad operations. Implementing this typeclass is enough to use async/await with supports of basic control-flow constructions (if, loops, but no exceptions).

Companion
object
object CpsMonad
Companion
class
trait CpsMonadConversion[F[_], G[_]]

You should implement this interface and made given instance available for using await[F] in async[G]

You should implement this interface and made given instance available for using await[F] in async[G]

trait CpsProgressingMonad[F[_]] extends CpsAsyncMonad[F]
trait CpsSchedulingMonad[F[_]] extends CpsAsyncMonad[F]
trait CpsTryMonad[F[_]] extends CpsMonad[F]

If you monad supports this typeclass, than you can use try/catch/finally inside await.

If you monad supports this typeclass, than you can use try/catch/finally inside await.

case class FlatMappedCpsExpr[F[_], S, T](monad: Expr[CpsMonad[F]], prev: Seq[ExprTreeGen], point: CpsExpr[F, S], mapping: Expr[S => F[T]])(`evidence$14`: Type[F], `evidence$15`: Type[S], `evidence$16`: Type[T]) extends AsyncCpsExpr[F, T]
case class GenericAsyncCpsExpr[F[_], T](dm: Expr[CpsMonad[F]], prev: Seq[ExprTreeGen], fLastExpr: Expr[F[T]])(`evidence$9`: Type[F], `evidence$10`: Type[T]) extends AsyncCpsExpr[F, T]
case class GenericSyncCpsExpr[F[_], T](dm: Expr[CpsMonad[F]], prev: Seq[ExprTreeGen], lastExpr: Expr[T], changed: Boolean)(`evidence$5`: Type[F], `evidence$6`: Type[T]) extends SyncCpsExpr[F, T]
case class MappedCpsExpr[F[_], S, T](monad: Expr[CpsMonad[F]], prev: Seq[ExprTreeGen], point: CpsExpr[F, S], mapping: Expr[S => T])(`evidence$11`: Type[F], `evidence$12`: Type[S], `evidence$13`: Type[T]) extends AsyncCpsExpr[F, T]
class StatementExprTreeGen(using `x$1`: Quotes)(stat: Statement, changed: Boolean) extends ExprTreeGen
abstract class SyncCpsExpr[F[_], T](dm: Expr[CpsMonad[F]], prev: Seq[ExprTreeGen])(`evidence$3`: Type[F], `evidence$4`: Type[T]) extends CpsExpr[F, T]
case class TransformationContext[F[_], T](patternCode: Expr[T], patternType: Type[T], monad: Expr[CpsMonad[F]], flags: AsyncMacroFlags, marker: TransformationContextMarker, nesting: Int, parent: Option[TransformationContext[_[_], _]])
Companion
object
case class UnitCpsExpr[F[_]](monad: Expr[CpsMonad[F]], prev: Seq[ExprTreeGen], changed: Boolean)(`evidence$17`: Type[F], `x$4`: Quotes) extends SyncCpsExpr[F, Unit]
case class UnsealExprTreeGen[T](expr: Expr[T], changed: Boolean) extends ExprTreeGen
trait ValueDiscard[T]
Companion
object
object ValueDiscard
Companion
class

Value members

Concrete methods

inline def async[F[_]](using inline am: CpsMonad[F]): InferAsyncArg[F]
@compileTimeOnly("await should be inside async block")
def await[F[_], T](f: F[T])(using am: CpsMonad[F]): T

Givens