Trait zng::var::VarSubscribe

source ·
pub trait VarSubscribe<T>: Var<T> + AnyVarSubscribe
where T: VarValue,
{ // 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§

source

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§

source

fn on_pre_new<H>(&self, handler: H) -> VarHandle
where 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.

source

fn on_new<H>(&self, handler: H) -> VarHandle
where 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.

Object Safety§

This trait is not object safe.

Implementors§

source§

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