Builders for TaskLocal
Value members
Concrete methods
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)
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.
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
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.