TaskLocal

object TaskLocal

Builders for TaskLocal

Builders for TaskLocal

Companion
class
class Object
trait Matchable
class Any

Value members

Concrete methods

def apply[A](default: A): Task[TaskLocal[A]]

Builds a TaskLocal reference with the given default.

Builds a TaskLocal reference with the given default.

Task returned by this operation produces a new TaskLocal each time it is evaluated. To share a state between multiple consumers, pass TaskLocal values around as plain parameters, instead of keeping shared state.

   Another possibility is to use [[Task.memoize]], but note
   that this breaks referential transparency and can be
   problematic for example in terms of enabled [[Task.Options]],
   which don't survive the memoization process.
Value Params
default

is a value that gets returned in case the local was never updated (with write) or in case it was cleared (with TaskLocal.clear)

def isolate[A](task: Task[A]): Task[A]

Wraps a provided task, such that any changes to any TaskLocal variable during its execution will not be observable outside of that Task.

Wraps a provided task, such that any changes to any TaskLocal variable during its execution will not be observable outside of that Task.

def lazyDefault[A](default: Coeval[A]): Task[TaskLocal[A]]

Builds a TaskLocal reference with the given default, being lazily evaluated, using Coeval to manage evaluation.

Builds a TaskLocal reference with the given default, being lazily evaluated, using Coeval to manage evaluation.

Yes, side effects in the default are allowed, Coeval being a data type that's safe for side effects.

Task returned by this operation produces a new TaskLocal each time it is evaluated. To share a state between multiple consumers, pass TaskLocal values around as plain parameters, instead of keeping shared state.

   Another possibility is to use [[Task.memoize]], but note
   that this breaks referential transparency and can be
   problematic for example in terms of enabled [[Task.Options]],
   which don't survive the memoization process.
Value Params
default

is a value that gets returned in case the local was never updated (with write) or in case it was cleared (with TaskLocal.clear), lazily evaluated and managed by Coeval

def wrap[A](local: Task[Local[A]]): Task[TaskLocal[A]]

Wraps a Local reference (given in the Task context) in a TaskLocal value.

Wraps a Local reference (given in the Task context) in a TaskLocal value.

Task returned by this operation produces a new TaskLocal each time it is evaluated. To share a state between multiple consumers, pass TaskLocal values around as plain parameters, instead of keeping shared state.

   Another possibility is to use [[Task.memoize]], but note
   that this breaks referential transparency and can be
   problematic for example in terms of enabled [[Task.Options]],
   which don't survive the memoization process.