Packages

object TaskLocal

Builders for TaskLocal

Source
TaskLocal.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. TaskLocal
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. 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.

    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)

  2. 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.

  3. 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.

    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

  4. 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.