Auto observables only subscribe to dependencies if they're watched. Therefore it is accurately known whether a State is being watched or not (and one can pass a callback to detect that). This should finally enable https://github.com/MVCoconut/coconut.data/issues/59 ... also fixes a few memory leaks introduced with the no-measure approach. As a result, polling data from unwatched auto observables became a bit more expensive (they always have to check if their dependencies changed).
Exposed Scheduler a bit. The API should be fleshed out more, but that can be done without breaking changes.
Added Scheduler.atomically, which allows to perform state mutations that will also propagate invalidation, but direct bindings execute only after the function has finished.
Ok, I hope this is the last time I have to introduce breaking changes for a while. In a nutshell:
tink.state.internal
package now.BindingOptions
removed to fix https://github.com/haxetink/tink_state/pull/11 ... there's-D tink_state.legacy_binding_options
for migration.State
is being watched or not (and one can pass a callback to detect that). This should finally enable https://github.com/MVCoconut/coconut.data/issues/59 ... also fixes a few memory leaks introduced with the no-measure approach. As a result, polling data from unwatched auto observables became a bit more expensive (they always have to check if their dependencies changed).Scheduler
a bit. The API should be fleshed out more, but that can be done without breaking changes.Scheduler.atomically
, which allows to perform state mutations that will also propagate invalidation, but direct bindings execute only after the function has finished.