SyncIO

object SyncIO extends SyncIOCompanionPlatform with SyncIOLowPriorityImplicits
Companion
class
trait Sum
trait Mirror
trait SyncIOLowPriorityImplicits
trait SyncIOCompanionPlatform
class Object
trait Matchable
class Any

Type members

Inherited classlikes

protected class SyncIOSemigroup[A](implicit val A: Semigroup[A])

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Inherited from
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Inherited from
Mirror

Value members

Concrete methods

def apply[A](thunk: => A): SyncIO[A]

Suspends a synchronous side effect in SyncIO.

Suspends a synchronous side effect in SyncIO.

Any exceptions thrown by the effect will be caught and sequenced into the SyncIO.

Value Params
thunk

side effectful expression to be suspended in SyncIO

Returns

a SyncIO that will be evaluated to the side effectful expression thunk

def defer[A](thunk: => SyncIO[A]): SyncIO[A]

Suspends a synchronous side effect which produces a SyncIO in SyncIO.

Suspends a synchronous side effect which produces a SyncIO in SyncIO.

This is useful for trampolining (i.e. when the side effect is conceptually the allocation of a stack frame). Any exceptions thrown by the side effect will be caught and sequenced into the SyncIO.

Value Params
thunk

SyncIO expression to be suspended in SyncIO

Returns

a SyncIO that will be evaluated to the value of the suspended thunk

def delay[A](thunk: => A): SyncIO[A]

Alias for apply.

Alias for apply.

See also
def eval[A](fa: Eval[A]): SyncIO[A]

Lifts an Eval into SyncIO.

Lifts an Eval into SyncIO.

This function will preserve the evaluation semantics of any actions that are lifted into the pure SyncIO. Eager Eval instances will be converted into thunk-less SyncIO (i.e. eager SyncIO), while lazy eval and memoized will be executed as such.

Value Params
fa

Eval instance to be lifted in SyncIO

Returns

SyncIO that will be evaluated to the value of the lifted fa

def fromEither[A](e: Either[Throwable, A]): SyncIO[A]

Lifts an Either[Throwable, A] into SyncIO, raising the throwable if it exists.

Lifts an Either[Throwable, A] into SyncIO, raising the throwable if it exists.

Value Params
e

either value to be lifted

Returns

SyncIO that evaluates to the value of e or fail with its Throwable instance

def fromOption[A](o: Option[A])(orElse: => Throwable): SyncIO[A]

Lifts an Option[A] into SyncIO, raising orElse if the provided option value is empty.

Lifts an Option[A] into SyncIO, raising orElse if the provided option value is empty.

Value Params
o

option value to be lifted

orElse

expression that evaluates to Throwable

Returns

SyncIO that evaluates to the optional value o or fail with the orElse expression

def fromTry[A](t: Try[A]): SyncIO[A]

Lifts a Try[A] into SyncIO, raising the throwable if it exists.

Lifts a Try[A] into SyncIO, raising the throwable if it exists.

Value Params
t

try value to be lifted

Returns

SyncIO that evaluates to the value of t if successful, or fails with its Throwable instance

def pure[A](value: A): SyncIO[A]

Suspends a pure value in SyncIO.

Suspends a pure value in SyncIO.

This should ''only'' be used if the value in question has "already" been computed! In other words, something like SyncIO.pure(readLine) is most definitely not the right thing to do! However, SyncIO.pure(42) is correct and will be more efficient (when evaluated) than SyncIO(42), due to avoiding the allocation of extra thunks.

Value Params
value

precomputed value used as the result of the SyncIO

Returns

an already evaluated SyncIO holding value

def raiseError[A](t: Throwable): SyncIO[A]

Constructs a SyncIO which sequences the specified exception.

Constructs a SyncIO which sequences the specified exception.

If this SyncIO is run using unsafeRunSync the exception will be thrown. This exception can be "caught" (or rather, materialized into value-space) using the attempt method.

Value Params
t

java.lang.Throwable value to fail with

Returns

a SyncIO that results in failure with value t

See also
def unit: SyncIO[Unit]

Alias for SyncIO.pure(())

Alias for SyncIO.pure(())

See also

Inherited methods

final def realTimeDate: SyncIO[Date]
Inherited from
SyncIOCompanionPlatform

Concrete fields

val monotonic: SyncIO[FiniteDuration]
val realTime: SyncIO[FiniteDuration]

Implicits

Implicits

implicit def alignForSyncIO: Align[[A] =>> SyncIO[A]]
implicit def monoidForIO[A](implicit evidence$1: Monoid[A]): Monoid[SyncIO[A]]
implicit def showForSyncIO[A](implicit A: Show[A]): Show[SyncIO[A]]
implicit def syncForSyncIO: Sync[[A] =>> SyncIO[A]] & MonadCancel[[A] =>> SyncIO[A], Throwable]

Inherited implicits

implicit def semigroupForIO[A](implicit evidence$2: Semigroup[A]): Semigroup[SyncIO[A]]
Inherited from
SyncIOLowPriorityImplicits