pub trait VarSubscribe<T: VarValue>: Var<T> + AnyVarSubscribe {
// Required method
fn subscribe_when(
&self,
op: UpdateOp,
widget_id: WidgetId,
predicate: impl Fn(&T) -> bool + Send + Sync + 'static,
) -> VarHandle;
// Provided methods
fn on_pre_new<H>(&self, handler: H) -> VarHandle
where H: AppHandler<OnVarArgs<T>> { ... }
fn on_new<H>(&self, handler: H) -> VarHandle
where H: AppHandler<OnVarArgs<T>> { ... }
}
Expand description
Extension methods to subscribe any widget to a variable or app handlers to a variable.
Also see WIDGET
methods for the primary way to subscribe from inside a widget.
Required Methods§
Sourcefn subscribe_when(
&self,
op: UpdateOp,
widget_id: WidgetId,
predicate: impl Fn(&T) -> bool + Send + Sync + 'static,
) -> VarHandle
fn subscribe_when( &self, op: UpdateOp, widget_id: WidgetId, predicate: impl Fn(&T) -> bool + Send + Sync + 'static, ) -> VarHandle
Register the widget to receive an UpdateOp
when this variable is new and the predicate
approves the new value.
Variables without the NEW
capability return VarHandle::dummy
.
Provided Methods§
Sourcefn on_pre_new<H>(&self, handler: H) -> VarHandlewhere
H: AppHandler<OnVarArgs<T>>,
fn on_pre_new<H>(&self, handler: H) -> VarHandlewhere
H: AppHandler<OnVarArgs<T>>,
Add a preview handler
that is called every time this variable updates,
the handler is called before UI update.
Note that the handler runs on the app context, all ContextVar<T>
used inside will have the default value.
Sourcefn on_new<H>(&self, handler: H) -> VarHandlewhere
H: AppHandler<OnVarArgs<T>>,
fn on_new<H>(&self, handler: H) -> VarHandlewhere
H: AppHandler<OnVarArgs<T>>,
Add a handler
that is called every time this variable updates,
the handler is called after UI update.
Note that the handler runs on the app context, all ContextVar<T>
used inside will have the default value.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.