Struct cushy::value::DynamicReader
source · 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§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 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_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 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>
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
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
§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