pub struct Watcher(/* private fields */);
Expand description
Watches one or more Source
s and invokes associated callbacks when
changed.
This type is useful when needing to ensure logic is executed or a value is regenerated each time one of many sources are changed.
Implementations§
source§impl Watcher
impl Watcher
sourcepub fn notify(&self)
pub fn notify(&self)
Notifies any observers of this watcher and invokes all associated callbacks.
sourcepub fn watch<T>(&self, other: &impl Source<T>)where
T: Send + 'static,
pub fn watch<T>(&self, other: &impl Source<T>)where
T: Send + 'static,
Ensures all callbacks attached to this watcher are invoked when other
is changed.
sourcepub fn map_changed<F, T>(&self, when_changed: F) -> Dynamic<T>
pub fn map_changed<F, T>(&self, when_changed: F) -> Dynamic<T>
Returns a new dynamic populated by invoking when_changed
each time any
watched source is updated.
sourcepub fn when_changed<F>(&self, when_changed: F) -> CallbackHandle
pub fn when_changed<F>(&self, when_changed: F) -> CallbackHandle
Invokes when_changed
each time any watched source is updated.
Trait Implementations§
source§impl Source<usize> for Watcher
impl Source<usize> for Watcher
source§fn try_map_generational<R>(
&self,
map: impl FnOnce(DynamicGuard<'_, usize, true>) -> R,
) -> Result<R, DeadlockError>
fn try_map_generational<R>( &self, map: impl FnOnce(DynamicGuard<'_, usize, true>) -> R, ) -> Result<R, DeadlockError>
Maps the contents with read-only access, providing access to the value’s
Generation
.source§fn for_each_subsequent_generational_try<F>(&self, for_each: F) -> CallbackHandlewhere
F: for<'a> FnMut(DynamicGuard<'_, usize, true>) -> Result<(), CallbackDisconnected> + Send + 'static,
fn for_each_subsequent_generational_try<F>(&self, for_each: F) -> CallbackHandlewhere
F: for<'a> FnMut(DynamicGuard<'_, usize, true>) -> Result<(), CallbackDisconnected> + Send + 'static,
Attaches
for_each
to this value so that it is invoked each time the
source’s contents are updated. Read moresource§fn for_each_generational_cloned_try<F>(&self, for_each: F) -> CallbackHandle
fn for_each_generational_cloned_try<F>(&self, for_each: F) -> CallbackHandle
Invokes
for_each
with the current contents and each time this source’s
contents are updated. Read moresource§fn map_generational<R>(
&self,
map: impl FnOnce(DynamicGuard<'_, T, true>) -> R,
) -> R
fn map_generational<R>( &self, map: impl FnOnce(DynamicGuard<'_, T, true>) -> R, ) -> R
Maps the contents with read-only access, providing access to the value’s
Generation
. Read moresource§fn generation(&self) -> Generation
fn generation(&self) -> Generation
Returns the current generation of the value. Read more
source§fn map_ref<R>(&self, map: impl FnOnce(&T) -> R) -> R
fn map_ref<R>(&self, map: impl FnOnce(&T) -> R) -> R
Maps the contents with read-only access. Read more
source§fn try_map_ref<R>(&self, map: impl FnOnce(&T) -> R) -> Result<R, DeadlockError>
fn try_map_ref<R>(&self, map: impl FnOnce(&T) -> R) -> Result<R, DeadlockError>
Maps the contents with read-only access.
source§fn try_get(&self) -> Result<T, DeadlockError>where
T: Clone,
fn try_get(&self) -> Result<T, DeadlockError>where
T: Clone,
Returns a clone of the currently contained value.
source§fn get_tracking_redraw(&self, context: &WidgetContext<'_>) -> T
fn get_tracking_redraw(&self, context: &WidgetContext<'_>) -> T
Returns a clone of the currently contained value. Read more
source§fn get_tracking_invalidate(&self, context: &WidgetContext<'_>) -> T
fn get_tracking_invalidate(&self, context: &WidgetContext<'_>) -> T
Returns a clone of the currently contained value. Read more
source§fn for_each_subsequent_generational<F>(&self, for_each: F) -> CallbackHandle
fn for_each_subsequent_generational<F>(&self, for_each: F) -> CallbackHandle
Attaches
for_each
to this value so that it is invoked each time the
source’s contents are updated. Read moresource§fn for_each_subsequent_try<F>(&self, for_each: F) -> CallbackHandle
fn for_each_subsequent_try<F>(&self, for_each: F) -> CallbackHandle
Attaches
for_each
to this value so that it is invoked each time the
source’s contents are updated. Read moresource§fn for_each_subsequent<F>(&self, for_each: F) -> CallbackHandle
fn for_each_subsequent<F>(&self, for_each: F) -> CallbackHandle
Attaches
for_each
to this value so that it is invoked each time the
source’s contents are updated. Read moresource§fn for_each_generational_try<F>(&self, for_each: F) -> CallbackHandlewhere
T: Send + 'static,
F: for<'a> FnMut(DynamicGuard<'_, T, true>) -> Result<(), CallbackDisconnected> + Send + 'static,
fn for_each_generational_try<F>(&self, for_each: F) -> CallbackHandlewhere
T: Send + 'static,
F: for<'a> FnMut(DynamicGuard<'_, T, true>) -> Result<(), CallbackDisconnected> + Send + 'static,
Invokes
for_each
with the current contents and each time this source’s
contents are updated. Read moresource§fn for_each_generational<F>(&self, for_each: F) -> CallbackHandle
fn for_each_generational<F>(&self, for_each: F) -> CallbackHandle
Invokes
for_each
with the current contents and each time this source’s
contents are updated.source§fn for_each_try<F>(&self, for_each: F) -> CallbackHandle
fn for_each_try<F>(&self, for_each: F) -> CallbackHandle
Invokes
for_each
with the current contents and each time this source’s
contents are updated. Read moresource§fn for_each<F>(&self, for_each: F) -> CallbackHandle
fn for_each<F>(&self, for_each: F) -> CallbackHandle
Invokes
for_each
with the current contents and each time this source’s
contents are updated.source§fn for_each_cloned_try<F>(&self, for_each: F) -> CallbackHandle
fn for_each_cloned_try<F>(&self, for_each: F) -> CallbackHandle
Invokes
for_each
with the current contents and each time this source’s
contents are updated.source§fn for_each_cloned<F>(&self, for_each: F) -> CallbackHandle
fn for_each_cloned<F>(&self, for_each: F) -> CallbackHandle
Invokes
for_each
with the current contents and each time this source’s
contents are updated.source§fn debounced_every(&self, period: Duration) -> Dynamic<T>
fn debounced_every(&self, period: Duration) -> Dynamic<T>
Returns a new dynamic that contains the updated contents of this dynamic
at most once every
period
.source§fn debounced_with_delay(&self, period: Duration) -> Dynamic<T>
fn debounced_with_delay(&self, period: Duration) -> Dynamic<T>
Returns a new dynamic that contains the updated contents of this dynamic
delayed by
period
. Each time this value is updated, the delay is
reset.source§fn map_each_generational<R, F>(&self, map: F) -> Dynamic<R>
fn map_each_generational<R, F>(&self, map: F) -> Dynamic<R>
Creates a new dynamic value that contains the result of invoking
map
each time this value is changed.source§fn map_each<R, F>(&self, map: F) -> Dynamic<R>
fn map_each<R, F>(&self, map: F) -> Dynamic<R>
Creates a new dynamic value that contains the result of invoking
map
each time this value is changed.source§fn map_each_cloned<R, F>(&self, map: F) -> Dynamic<R>
fn map_each_cloned<R, F>(&self, map: F) -> Dynamic<R>
Creates a new dynamic value that contains the result of invoking
map
each time this value is changed.source§fn weak_clone(&self) -> Dynamic<T>
fn weak_clone(&self) -> Dynamic<T>
source§fn map_each_into<U>(&self) -> Dynamic<U>
fn map_each_into<U>(&self) -> Dynamic<U>
Returns a new dynamic that is updated using
U::from(T.clone())
each
time self
is updated.Auto Trait Implementations§
impl Freeze for Watcher
impl !RefUnwindSafe for Watcher
impl Send for Watcher
impl Sync for Watcher
impl Unpin for Watcher
impl !UnwindSafe for Watcher
Blanket Implementations§
source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Convert the source color to the destination color using the specified
method.
source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Convert the source color to the destination color using the bradford
method by default.
source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Cast a collection of colors into a collection of arrays.
source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
Cast this collection of arrays into a collection of colors.
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters
when converting.source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self
into C
, using the provided parameters.§impl<A> Cast for A
impl<A> Cast for A
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Cast a collection of colors into a collection of color components.
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
Performs a conversion from
angle
.source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
Converts
other
into Self
, while performing the appropriate scaling,
rounding and clamping.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
source§fn into_angle(self) -> U
fn into_angle(self) -> U
Performs a conversion into
T
.source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
The number type that’s used in
parameters
when converting.source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
Converts
self
into C
, using the provided parameters.source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
source§fn into_color(self) -> U
fn into_color(self) -> U
Convert into T with values clamped to the color defined bounds Read more
source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Convert into T. The resulting color might be invalid in its color space Read more
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<T> IntoReadOnly<T> for T
impl<T> IntoReadOnly<T> for T
source§fn into_read_only(self) -> ReadOnly<T>
fn into_read_only(self) -> ReadOnly<T>
Returns
self
as a ReadOnly
.source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
Converts
self
into T
, while performing the appropriate scaling,
rounding and clamping.source§impl<T> IntoValue<T> for T
impl<T> IntoValue<T> for T
source§fn into_value(self) -> Value<T>
fn into_value(self) -> Value<T>
Returns this type as a
Value
.§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
The none-equivalent value.
§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian()
.source§impl<T> Trackable for Twhere
T: Trackable,
impl<T> Trackable for Twhere
T: Trackable,
source§fn redraw_when_changed(&self, context: &WidgetContext<'_>)where
Self: Sized,
fn redraw_when_changed(&self, context: &WidgetContext<'_>)where
Self: Sized,
Marks the widget for redraw when this value is updated. Read more
source§fn invalidate_when_changed(&self, context: &WidgetContext<'_>)where
Self: Sized,
fn invalidate_when_changed(&self, context: &WidgetContext<'_>)where
Self: Sized,
Marks the widget for redraw when this value is updated. Read more
source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
The error for when
try_into_colors
fails to cast.source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Try to cast this collection of color components into a collection of
colors. Read more
source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
Convert into T, returning ok if the color is inside of its defined
range, otherwise an
OutOfBounds
error is returned which contains
the unclamped color. Read moresource§impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
impl<C, U> UintsFrom<C> for Uwhere
C: IntoUints<U>,
source§fn uints_from(colors: C) -> U
fn uints_from(colors: C) -> U
Cast a collection of colors into a collection of unsigned integers.
source§impl<C, U> UintsInto<C> for Uwhere
C: FromUints<U>,
impl<C, U> UintsInto<C> for Uwhere
C: FromUints<U>,
source§fn uints_into(self) -> C
fn uints_into(self) -> C
Cast this collection of unsigned integers into a collection of colors.