pub struct DynamicReader<T> { /* private fields */ }Expand description
A reader of a Dynamic<T> that tracks the last generation accessed.
Implementations§
Source§impl DynamicReader<WidgetInstance>
impl DynamicReader<WidgetInstance>
Sourcepub fn into_switcher(self) -> Switcher
pub fn into_switcher(self) -> Switcher
Returns a new Switcher widget whose contents is the value of this
dynamic reader.
Sourcepub fn to_switcher(&self) -> Switcher
pub fn to_switcher(&self) -> Switcher
Returns a new Switcher widget whose contents is the value of this
dynamic reader.
Source§impl<T> DynamicReader<T>
impl<T> DynamicReader<T>
Sourcepub fn lock(&self) -> DynamicGuard<'_, T, true>
pub fn lock(&self) -> DynamicGuard<'_, T, true>
Returns an read-only, exclusive reference to the contents of this dynamic.
This call will block until all other guards for this dynamic have been dropped.
§Panics
This function panics if this value is already locked by the current thread.
Sourcepub fn read_generation(&self) -> Generation
pub fn read_generation(&self) -> Generation
Returns the current generation that has been accessed through this reader.
Sourcepub fn has_updated(&self) -> bool
pub fn has_updated(&self) -> bool
Returns true if the dynamic has been modified since the last time the value was accessed through this reader.
§Panics
This function panics if this value is already locked by the current thread.
Sourcepub fn block_until_updated(&self) -> bool
pub fn block_until_updated(&self) -> bool
Blocks the current thread until the contained value has been updated or there are no remaining writers for the value.
Returns true if a newly updated value was discovered.
§Panics
This function panics if this value is already locked by the current thread.
Sourcepub fn connected(&self) -> bool
pub fn connected(&self) -> bool
Returns true if this reader still has any writers connected to it.
Sourcepub fn wait_until_updated(&self) -> BlockUntilUpdatedFuture<'_, T> ⓘ
pub fn wait_until_updated(&self) -> BlockUntilUpdatedFuture<'_, T> ⓘ
Suspends the current async task until the contained value has been updated or there are no remaining writers for the value.
Returns true if a newly updated value was discovered.
Sourcepub fn on_disconnect<OnDisconnect>(&self, on_disconnect: OnDisconnect)
pub fn on_disconnect<OnDisconnect>(&self, on_disconnect: OnDisconnect)
Invokes on_disconnect when no instances of Dynamic<T> exist.
This callback will be invoked even if this DynamicReader has been
dropped.
§Panics
This function panics if this value is already locked by the current thread.
Trait Implementations§
Source§impl<T> Clone for DynamicReader<T>
impl<T> Clone for DynamicReader<T>
Source§impl<T> Debug for DynamicReader<T>where
T: Debug,
impl<T> Debug for DynamicReader<T>where
T: Debug,
Source§impl<T> Displayable<T> for DynamicReader<T>
impl<T> Displayable<T> for DynamicReader<T>
Source§fn into_displayable(self) -> DynamicReader<T>
fn into_displayable(self) -> DynamicReader<T>
Source§fn into_label(self) -> Label<T>
fn into_label(self) -> Label<T>
Source§impl<T> Drop for DynamicReader<T>
impl<T> Drop for DynamicReader<T>
Source§impl<T> DynamicRead<T> for DynamicReader<T>
impl<T> DynamicRead<T> for DynamicReader<T>
Source§fn read(&self) -> DynamicGuard<'_, T, true>
fn read(&self) -> DynamicGuard<'_, T, true>
Source§fn read_nonblocking(
&self,
) -> Result<DynamicGuard<'_, T, true>, TryLockError<'_>>
fn read_nonblocking( &self, ) -> Result<DynamicGuard<'_, T, true>, TryLockError<'_>>
Source§impl<T> From<Dynamic<T>> for DynamicReader<T>
impl<T> From<Dynamic<T>> for DynamicReader<T>
Source§impl<T> From<DynamicReader<T>> for ReadOnly<T>
impl<T> From<DynamicReader<T>> for ReadOnly<T>
Source§fn from(value: DynamicReader<T>) -> Self
fn from(value: DynamicReader<T>) -> Self
Source§impl<T> IntoReadOnly<T> for DynamicReader<T>
impl<T> IntoReadOnly<T> for DynamicReader<T>
Source§fn into_read_only(self) -> ReadOnly<T>
fn into_read_only(self) -> ReadOnly<T>
self as a ReadOnly.Source§impl<T> IntoReader<T> for DynamicReader<T>
impl<T> IntoReader<T> for DynamicReader<T>
Source§fn into_reader(self) -> DynamicReader<T>
fn into_reader(self) -> DynamicReader<T>
Source§impl<T> Source<T> for DynamicReader<T>
impl<T> Source<T> for DynamicReader<T>
Source§fn try_map_generational<R>(
&self,
map: impl FnOnce(DynamicGuard<'_, T, true>) -> R,
) -> Result<R, DeadlockError>
fn try_map_generational<R>( &self, map: impl FnOnce(DynamicGuard<'_, T, true>) -> R, ) -> Result<R, DeadlockError>
Generation.Source§fn on_change_try<F>(&self, on_change: F) -> CallbackHandle
fn on_change_try<F>(&self, on_change: F) -> CallbackHandle
on_change when the contents of this dynamic are updated. Read moreSource§fn for_each_subsequent_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_subsequent_generational_try<F>(&self, for_each: F) -> CallbackHandlewhere
T: Send + 'static,
F: for<'a> FnMut(DynamicGuard<'_, T, true>) -> Result<(), CallbackDisconnected> + Send + 'static,
for_each to this value so that it is invoked each time the
source’s contents are updated. Read moreSource§fn for_each_subsequent_generational_cloned_try<F>(
&self,
for_each: F,
) -> CallbackHandlewhere
T: Clone + Send + 'static,
F: FnMut(GenerationalValue<T>) -> Result<(), CallbackDisconnected> + Send + 'static,
fn for_each_subsequent_generational_cloned_try<F>(
&self,
for_each: F,
) -> CallbackHandlewhere
T: Clone + Send + 'static,
F: FnMut(GenerationalValue<T>) -> Result<(), CallbackDisconnected> + Send + 'static,
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
Generation. Read moreSource§fn generation(&self) -> Generation
fn generation(&self) -> Generation
Source§fn map_ref<R>(&self, map: impl FnOnce(&T) -> R) -> R
fn map_ref<R>(&self, map: impl FnOnce(&T) -> R) -> R
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>
Source§fn try_get(&self) -> Result<T, DeadlockError>where
T: Clone,
fn try_get(&self) -> Result<T, DeadlockError>where
T: Clone,
Source§fn get_tracking_redraw(&self, context: &WidgetContext<'_>) -> T
fn get_tracking_redraw(&self, context: &WidgetContext<'_>) -> T
Source§fn get_tracking_invalidate(&self, context: &WidgetContext<'_>) -> T
fn get_tracking_invalidate(&self, context: &WidgetContext<'_>) -> T
Source§fn on_change<F>(&self, on_change: F) -> CallbackHandle
fn on_change<F>(&self, on_change: F) -> CallbackHandle
on_change when the contents of this dynamic are updated.Source§fn for_each_subsequent_generational<F>(&self, for_each: F) -> CallbackHandle
fn for_each_subsequent_generational<F>(&self, for_each: F) -> CallbackHandle
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
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
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,
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
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
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
for_each with the current contents and each time this source’s
contents are updated.Source§fn for_each_generational_cloned_try<F>(&self, for_each: F) -> CallbackHandlewhere
T: Clone + Send + 'static,
F: FnMut(GenerationalValue<T>) -> Result<(), CallbackDisconnected> + Send + 'static,
fn for_each_generational_cloned_try<F>(&self, for_each: F) -> CallbackHandlewhere
T: Clone + Send + 'static,
F: FnMut(GenerationalValue<T>) -> Result<(), CallbackDisconnected> + Send + 'static,
for_each with the current contents and each time this source’s
contents are updated. Read moreSource§fn for_each_cloned_try<F>(&self, for_each: F) -> CallbackHandle
fn for_each_cloned_try<F>(&self, for_each: F) -> CallbackHandle
for_each with the current contents and each time this source’s
contents are updated. Read moreSource§fn for_each_subsequent_cloned_try<F>(&self, for_each: F) -> CallbackHandle
fn for_each_subsequent_cloned_try<F>(&self, for_each: F) -> CallbackHandle
for_each each time this source’s contents are updated. Read moreSource§fn for_each_subsequent_cloned<F>(&self, for_each: F) -> CallbackHandle
fn for_each_subsequent_cloned<F>(&self, for_each: F) -> CallbackHandle
for_each 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
for_each with the current contents and each time this source’s
contents are updated.Source§fn for_each_notify(&self, notify: impl Into<Notify<T>>) -> CallbackHandle
fn for_each_notify(&self, notify: impl Into<Notify<T>>) -> CallbackHandle
notify with a clone of the current contents each time this
source’s contents are updated.Source§fn for_each_try_notify(&self, notify: impl Into<Notify<T>>) -> CallbackHandle
fn for_each_try_notify(&self, notify: impl Into<Notify<T>>) -> CallbackHandle
notify with a clone of the current contents each time this
source’s contents are updated, disconnecting the callback if the target
is disconnected.Source§fn debounced_every(&self, period: Duration) -> Dynamic<T>
fn debounced_every(&self, period: Duration) -> Dynamic<T>
period.Source§fn debounced_with_delay(&self, period: Duration) -> Dynamic<T>
fn debounced_with_delay(&self, period: Duration) -> Dynamic<T>
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>
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>
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>
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>
U::from(T.clone()) each
time self is updated.Source§impl<'s, T, U> Unwrapped<U> for &'s DynamicReader<T>
impl<'s, T, U> Unwrapped<U> for &'s DynamicReader<T>
Source§fn unwrapped_or_else(self, initial: impl FnOnce() -> U) -> Dynamic<U>
fn unwrapped_or_else(self, initial: impl FnOnce() -> U) -> Dynamic<U>
Source§fn for_each_unwrapped_try<ForEach>(self, for_each: ForEach) -> CallbackHandle
fn for_each_unwrapped_try<ForEach>(self, for_each: ForEach) -> CallbackHandle
Source§fn unwrapped(self) -> Dynamic<T>where
T: Default,
fn unwrapped(self) -> Dynamic<T>where
T: Default,
Source§fn for_each_unwrapped<ForEach>(self, for_each: ForEach) -> CallbackHandle
fn for_each_unwrapped<ForEach>(self, for_each: ForEach) -> CallbackHandle
for_each when self is updated with a value that can be
unwrapped.Auto Trait Implementations§
impl<T> !Freeze for DynamicReader<T>
impl<T> !RefUnwindSafe for DynamicReader<T>
impl<T> Send for DynamicReader<T>where
T: Send,
impl<T> Sync for DynamicReader<T>where
T: Send,
impl<T> Unpin for DynamicReader<T>
impl<T> !UnwindSafe for DynamicReader<T>
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>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
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
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
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
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
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
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§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
§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>
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>
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)
&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)
&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
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
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
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
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
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
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
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>
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>
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>
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
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>
Value.§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T, U> Progressable<U> for T
impl<T, U> Progressable<U> for T
Source§fn progress_bar(self) -> ProgressBar
fn progress_bar(self) -> ProgressBar
T::MIN to
T::MAX.Source§fn progress_bar_to(self, max: impl IntoReadOnly<T::Value>) -> ProgressBar
fn progress_bar_to(self, max: impl IntoReadOnly<T::Value>) -> ProgressBar
T::MIN to
max. The maximum value can be either a T or an Option<T>. If
None is the maximum value, an indeterminant progress bar will be
displayed.Source§fn progress_bar_between<Range>(self, range: Range) -> ProgressBar
fn progress_bar_between<Range>(self, range: Range) -> ProgressBar
range of T. The range can be either a T..=T or an Option<T>. If
None is specified as the range, an indeterminant progress bar will be
displayed.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,
Source§fn invalidate_when_changed(&self, context: &WidgetContext<'_>)where
Self: Sized,
fn invalidate_when_changed(&self, context: &WidgetContext<'_>)where
Self: Sized,
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
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>
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>>
OutOfBounds error is returned which contains
the unclamped color. Read more