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.
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.
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.
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.
Builders for TaskLocal