object SafeInterpretation extends SafeInterpretation
- Source
- SafeEffect.scala
- Alphabetic
- By Inheritance
- SafeInterpretation
- SafeInterpretation
- SafeCreation
- SafeTypes
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def attempt[R, A](action: Eff[R, A])(implicit m: /=[Safe, R]): Eff[R, Either[Throwable, A]]
try to execute an action an report any issue
try to execute an action an report any issue
- Definition Classes
- SafeInterpretation
- def attemptSafe[R, A](effect: Eff[R, A])(implicit m: /=[Safe, R]): Eff[R, (EitherEffect.ThrowableEither[A], List[Throwable])]
Attempt to execute a safe action including finalizers
Attempt to execute a safe action including finalizers
- Definition Classes
- SafeInterpretation
- def bracket[R, A, B, C](acquire: Eff[R, A])(use: (A) => Eff[R, B])(release: (A) => Eff[R, C])(implicit m: /=[Safe, R]): Eff[R, B]
get a resource A and use it.
get a resource A and use it. Call the release function whether an exception is thrown or not when using the resource
NOTE: Eff interpreters are independent so if there is an effect short-circuiting all computations inside 'use', like Option or Either then the release function will not be called. If you want to make sure that the release function is always called "at the end of the world and whatever happens" you need to call Eff.bracketLast
- Definition Classes
- SafeInterpretation
- def catchThrowable[R, A, B](action: Eff[R, A], pureValue: (A) => B, onThrowable: (Throwable) => Eff[R, B])(implicit m: /=[Safe, R]): Eff[R, B]
evaluate first action possibly having error effects
evaluate first action possibly having error effects
Execute a second action if the first one is not successful, based on the error
- Definition Classes
- SafeInterpretation
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def eval[R, A](a: Eval[A])(implicit arg0: _safe[R]): Eff[R, A]
- Definition Classes
- SafeCreation
- def exception[R, A](t: Throwable)(implicit arg0: _safe[R]): Eff[R, A]
- Definition Classes
- SafeCreation
- def execSafe[R, U, A](r: Eff[R, A])(implicit m: Aux[Safe, R, U]): Eff[U, EitherEffect.ThrowableEither[A]]
run a safe effect but drop the finalizer errors
run a safe effect but drop the finalizer errors
- Definition Classes
- SafeInterpretation
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def finalizerException[R](t: Throwable)(implicit arg0: _safe[R]): Eff[R, Unit]
- Definition Classes
- SafeCreation
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def ignoreException[R, E <: Throwable, A](action: Eff[R, A])(implicit arg0: ClassTag[E], m: /=[Safe, R]): Eff[R, Unit]
ignore one possible exception that could be thrown
ignore one possible exception that could be thrown
- Definition Classes
- SafeInterpretation
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def otherwise[R, A](action: Eff[R, A], onThrowable: Eff[R, A])(implicit m: /=[Safe, R]): Eff[R, A]
evaluate first action possibly having exceptions
evaluate first action possibly having exceptions
Execute a second action if the first one is not successful
- Definition Classes
- SafeInterpretation
- def protect[R, A](a: => A)(implicit arg0: _safe[R]): Eff[R, A]
- Definition Classes
- SafeCreation
- def recoverThrowable[R, A, B](action: Eff[R, A], pureValue: (A) => B, onThrowable: PartialFunction[Throwable, Eff[R, B]])(implicit m: /=[Safe, R]): Eff[R, B]
evaluate first action possibly having error effects
evaluate first action possibly having error effects
Execute a second action if the first one is not successful and second is defined for the error
- Definition Classes
- SafeInterpretation
- def runSafe[R, U, A](effect: Eff[R, A])(implicit m: Aux[Safe, R, U]): Eff[U, (EitherEffect.ThrowableEither[A], List[Throwable])]
Run a safe effect
Run a safe effect
Collect finalizer exceptions if any
- Definition Classes
- SafeInterpretation
- def safeInterpreter[R, A](last: Option[(Eff[R, Unit], /=[Safe, R])]): Interpreter[Safe, R, A, Out[A]]
- Definition Classes
- SafeInterpretation
- def safeInterpreter[R, A]: Interpreter[Safe, R, A, Out[A]]
- Definition Classes
- SafeInterpretation
- def safeMemo[R, A](key: AnyRef, cache: Cache, e: Eff[R, A])(implicit safe: /=[Safe, R]): Eff[R, A]
Memoize safe effects using a cache
Memoize safe effects using a cache
if this method is called with the same key the previous value will be returned
- Definition Classes
- SafeInterpretation
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def thenFinally[R, A](effect: Eff[R, A], last: Eff[R, Unit])(implicit m: /=[Safe, R]): Eff[R, A]
evaluate first action possibly having error effects execute a second action whether the first is successful or not but keep track of finalizer exceptions
evaluate first action possibly having error effects execute a second action whether the first is successful or not but keep track of finalizer exceptions
- Definition Classes
- SafeInterpretation
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def whenFailed[R, A](action: Eff[R, A], onThrowable: (Throwable) => Eff[R, A])(implicit m: /=[Safe, R]): Eff[R, A]
evaluate first action possibly throwing exceptions
evaluate first action possibly throwing exceptions
Execute a second action if the first one is not successful, based on the exception
The final value type is the same as the original type
- Definition Classes
- SafeInterpretation
- def whenThrowable[R, A](action: Eff[R, A], onThrowable: PartialFunction[Throwable, Eff[R, A]])(implicit m: /=[Safe, R]): Eff[R, A]
evaluate first action possibly throwing exceptions
evaluate first action possibly throwing exceptions
Execute a second action if the first one is not successful and second is defined for the error
The final value type is the same as the original type
- Definition Classes
- SafeInterpretation