Skip to main content

VarSubscribe

Trait VarSubscribe 

Source
pub trait VarSubscribe<T>: AnyVarSubscribe
where 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§

Source

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.

Source

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.

Source

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".

Implementors§

Source§

impl<T> VarSubscribe<T> for Var<T>
where T: VarValue,