value property
T
get
value
inherited
Gets the current value and registers this Rx as a dependency
Implementation
T get value {
// Check for computed tracker first
final computedTracker = ComputedTrackerRegistry.current;
if (computedTracker != null) {
computedTracker.dependencies.add(this);
// Zero overhead: only track if DevTools is enabled
if (SwiftDevTools.isEnabled && SwiftDevTools.isTrackingDependencies) {
// Note: ComputedTracker doesn't have ID, skip for now
// DevTools extension can infer from stack
}
}
// Then check for mark widget
final mark = MarkRegistry.current;
if (mark != null) {
mark.register(this);
// Zero overhead: only track if DevTools is enabled
if (SwiftDevTools.isEnabled && SwiftDevTools.isTrackingDependencies) {
SwiftDevTools.trackDependency(
SwiftDevTools.getMarkId(mark),
SwiftDevTools.getRxId(this),
);
}
}
return _value;
}
Sets a new value and notifies listeners if changed
Implementation
@override
set value(T newValue) {
final oldValue = value;
// Run middlewares
for (final middleware in _middlewares) {
middleware(oldValue, newValue);
}
super.value = newValue;
// Run side effects
for (final sideEffect in _sideEffects) {
sideEffect(newValue);
}
}