pub trait VarSubscribe<T>: AnyVarSubscribewhere
T: VarValue,{
// Required methods
fn subscribe_when(
&self,
op: UpdateOp,
widget_id: WidgetId,
predicate: impl Fn(&VarHookArgs<'_, T>) -> bool + Send + Sync + 'static,
) -> VarHandle;
fn on_pre_new(
&self,
handler: Box<dyn FnMut(&OnVarArgs<T>) -> HandlerResult + Send>,
) -> VarHandle;
fn on_new(
&self,
handler: Box<dyn FnMut(&OnVarArgs<T>) -> HandlerResult + Send>,
) -> VarHandle;
}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(&VarHookArgs<'_, T>) -> bool + Send + Sync + 'static,
) -> VarHandle
fn subscribe_when( &self, op: UpdateOp, widget_id: WidgetId, predicate: impl Fn(&VarHookArgs<'_, 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.
Sourcefn on_pre_new(
&self,
handler: Box<dyn FnMut(&OnVarArgs<T>) -> HandlerResult + Send>,
) -> VarHandle
fn on_pre_new( &self, handler: Box<dyn FnMut(&OnVarArgs<T>) -> HandlerResult + Send>, ) -> VarHandle
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(
&self,
handler: Box<dyn FnMut(&OnVarArgs<T>) -> HandlerResult + Send>,
) -> VarHandle
fn on_new( &self, handler: Box<dyn FnMut(&OnVarArgs<T>) -> HandlerResult + Send>, ) -> VarHandle
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".