ZManagedCpsMonad

class ZManagedCpsMonad[R, E] extends CpsTryMonad[[X] =>> ZManaged[R, E, X]] with CpsMonadInstanceContext[[X] =>> ZManaged[R, E, X]]

CpsMonad which encapsulate effects with automatic resource management.

Example of usage:

 asyncRManaged[R] {
     val input = FileChannel.open(inputPath)
     val output = FileChannel.open(outputPath)
     input.transformTo(0,Long.MaxValue,output)
 }
trait CpsMonadInstanceContext[[X] =>> ZManaged[R, E, X]]
trait CpsTryMonad[[X] =>> ZManaged[R, E, X]]
trait CpsMonad[[X] =>> ZManaged[R, E, X]]
trait CpsAwaitable[[X] =>> ZManaged[R, E, X]]
class Object
trait Matchable
class Any

Type members

Types

type F[T] = ZManaged[R, E, T]

Inherited types

type Context = CpsMonadInstanceContextBody[F]
Inherited from:
CpsMonadInstanceContext
type WF[X] = F[X]
Inherited from:
CpsMonad

Value members

Concrete methods

def error[A](e: Throwable): F[A]
def flatMap[A, B](fa: F[A])(f: A => F[B]): F[B]
def flatMapTry[A, B](fa: F[A])(f: Try[A] => F[B]): F[B]
def map[A, B](fa: F[A])(f: A => B): F[B]
def pure[A](x: A): ZManaged[R, E, A]

Inherited methods

def adoptAwait[A](fa: ZManaged[R, E, A]): ZManaged[R, E, A]

If is it statically known, that monad is evaluated in this context, then this call is completely eliminated by dotty-cps-async macro

If is it statically known, that monad is evaluated in this context, then this call is completely eliminated by dotty-cps-async macro

Returns:

fa

Inherited from:
CpsMonadInstanceContext
def apply[T](op: Context => ZManaged[R, E, T]): ZManaged[R, E, T]

run with this instance

run with this instance

Inherited from:
CpsMonadInstanceContext
def fromTry[A](r: Try[A]): ZManaged[R, E, A]

transform r into pure value or error.

transform r into pure value or error.

Inherited from:
CpsTryMonad
def mapTry[A, B](fa: ZManaged[R, E, A])(f: Try[A] => B): ZManaged[R, E, B]

map over result of checked evaluation of A

map over result of checked evaluation of A

Inherited from:
CpsTryMonad
def mapTryAsync[A, B](fa: ZManaged[R, E, A])(f: Try[A] => ZManaged[R, E, B]): ZManaged[R, E, B]

synonym for flatMapTry needed for processing awaits inside mapTry.

synonym for flatMapTry needed for processing awaits inside mapTry.

Inherited from:
CpsTryMonad
def restore[A](fa: ZManaged[R, E, A])(fx: Throwable => ZManaged[R, E, A]): ZManaged[R, E, A]

restore fa, ie if fa sucessful - return fa, otherwise apply fx to received error.

restore fa, ie if fa sucessful - return fa, otherwise apply fx to received error.

Inherited from:
CpsTryMonad
def tryImpure[A](a: => ZManaged[R, E, A]): ZManaged[R, E, A]

try to evaluate async operation and wrap successful or failed result into F.

try to evaluate async operation and wrap successful or failed result into F.

Inherited from:
CpsTryMonad
def tryPure[A](a: => A): ZManaged[R, E, A]

try to evaluate synchonious operation and wrap successful or failed result into F.

try to evaluate synchonious operation and wrap successful or failed result into F.

Inherited from:
CpsTryMonad
def tryPureAsync[A](a: () => ZManaged[R, E, A]): ZManaged[R, E, A]

async shift of tryPure.

async shift of tryPure.

Inherited from:
CpsTryMonad
def withAction[A](fa: ZManaged[R, E, A])(action: => Unit): ZManaged[R, E, A]

ensure that action will run before getting value from fa

ensure that action will run before getting value from fa

Inherited from:
CpsTryMonad
def withActionAsync[A](fa: ZManaged[R, E, A])(action: () => ZManaged[R, E, Unit]): ZManaged[R, E, A]

async shift of withAction.

async shift of withAction.

This method is substituted instead withAction, when we use await inside withAction argument.

Inherited from:
CpsTryMonad
def withAsyncAction[A](fa: ZManaged[R, E, A])(action: => ZManaged[R, E, Unit]): ZManaged[R, E, A]

return result of fa after completition of action.

return result of fa after completition of action.

Inherited from:
CpsTryMonad