pub struct ArcMappedSignal<T> { /* private fields */ }Expand description
A derived signal type that wraps an ArcRwSignal with a mapping function,
allowing you to read or write directly to one of its field.
Tracking the mapped signal tracks changes to any part of the signal, and updating the signal notifies and notifies all dependencies of the signal. This is not a mechanism for fine-grained reactive updates to more complex data structures. Instead, it allows you to provide a signal-like API for wrapped types without exposing the original type directly to users.
Implementations§
Source§impl<T> ArcMappedSignal<T>
impl<T> ArcMappedSignal<T>
Trait Implementations§
Source§impl<T> Clone for ArcMappedSignal<T>
impl<T> Clone for ArcMappedSignal<T>
Source§fn clone(&self) -> ArcMappedSignal<T>
fn clone(&self) -> ArcMappedSignal<T>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<T> Debug for ArcMappedSignal<T>
impl<T> Debug for ArcMappedSignal<T>
Source§impl<T> DefinedAt for ArcMappedSignal<T>
impl<T> DefinedAt for ArcMappedSignal<T>
Source§fn defined_at(&self) -> Option<&'static Location<'static>>
fn defined_at(&self) -> Option<&'static Location<'static>>
Returns the location at which the signal was defined. This is usually simply
None in
release mode.Source§impl<T> From<ArcMappedSignal<T>> for MappedSignal<T>where
T: 'static,
impl<T> From<ArcMappedSignal<T>> for MappedSignal<T>where
T: 'static,
Source§fn from(value: ArcMappedSignal<T>) -> MappedSignal<T>
fn from(value: ArcMappedSignal<T>) -> MappedSignal<T>
Converts to this type from the input type.
Source§impl<T> From<ArcMappedSignal<T>> for Signal<T>
impl<T> From<ArcMappedSignal<T>> for Signal<T>
Source§fn from(value: ArcMappedSignal<T>) -> Signal<T>
fn from(value: ArcMappedSignal<T>) -> Signal<T>
Converts to this type from the input type.
Source§impl<T> IsDisposed for ArcMappedSignal<T>
impl<T> IsDisposed for ArcMappedSignal<T>
Source§fn is_disposed(&self) -> bool
fn is_disposed(&self) -> bool
If
true, the signal cannot be accessed without a panic.Source§impl<T> Notify for ArcMappedSignal<T>
impl<T> Notify for ArcMappedSignal<T>
Source§impl<T> ReadUntracked for ArcMappedSignal<T>
impl<T> ReadUntracked for ArcMappedSignal<T>
Source§type Value = DoubleDeref<Box<dyn Deref<Target = T>>>
type Value = DoubleDeref<Box<dyn Deref<Target = T>>>
The guard type that will be returned, which can be dereferenced to the value.
Source§fn try_read_untracked(
&self,
) -> Option<<ArcMappedSignal<T> as ReadUntracked>::Value>
fn try_read_untracked( &self, ) -> Option<<ArcMappedSignal<T> as ReadUntracked>::Value>
Returns the guard, or
None if the signal has already been disposed.Source§fn read_untracked(&self) -> Self::Value
fn read_untracked(&self) -> Self::Value
Returns the guard. Read more
Source§fn custom_try_read(&self) -> Option<Option<Self::Value>>
fn custom_try_read(&self) -> Option<Option<Self::Value>>
This is a backdoor to allow overriding the
Read::try_read implementation despite it being auto implemented. Read moreSource§impl<T> Track for ArcMappedSignal<T>
impl<T> Track for ArcMappedSignal<T>
Source§impl<T> Write for ArcMappedSignal<T>where
T: 'static,
impl<T> Write for ArcMappedSignal<T>where
T: 'static,
Source§fn try_write_untracked(&self) -> Option<impl DerefMut>
fn try_write_untracked(&self) -> Option<impl DerefMut>
or
None if the signal has already been disposed.Source§fn try_write(&self) -> Option<impl UntrackableGuard>
fn try_write(&self) -> Option<impl UntrackableGuard>
Returns the guard, or
None if the signal has already been disposed.Source§fn write(&self) -> impl UntrackableGuard
fn write(&self) -> impl UntrackableGuard
Returns the guard. Read more
Source§fn write_untracked(&self) -> impl DerefMut
fn write_untracked(&self) -> impl DerefMut
Returns a guard that will not notify subscribers when dropped. Read more
Auto Trait Implementations§
impl<T> Freeze for ArcMappedSignal<T>
impl<T> !RefUnwindSafe for ArcMappedSignal<T>
impl<T> Send for ArcMappedSignal<T>
impl<T> Sync for ArcMappedSignal<T>
impl<T> Unpin for ArcMappedSignal<T>
impl<T> !UnwindSafe for ArcMappedSignal<T>
Blanket Implementations§
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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, S> IntoOptionGetter<T, SignalMarker> for S
impl<T, S> IntoOptionGetter<T, SignalMarker> for S
Source§fn into_option_getter(self) -> OptionGetter<T>
fn into_option_getter(self) -> OptionGetter<T>
Converts the given value into an
OptionGetter.Source§impl<T> Read for Twhere
T: Track + ReadUntracked,
impl<T> Read for Twhere
T: Track + ReadUntracked,
Source§impl<T> SerializableKey for T
impl<T> SerializableKey for T
Source§impl<T> Set for Twhere
T: Update + IsDisposed,
impl<T> Set for Twhere
T: Update + IsDisposed,
Source§impl<T> StorageAccess<T> for T
impl<T> StorageAccess<T> for T
Source§fn as_borrowed(&self) -> &T
fn as_borrowed(&self) -> &T
Borrows the value.
Source§fn into_taken(self) -> T
fn into_taken(self) -> T
Takes the value.
Source§impl<T> Update for Twhere
T: Write,
impl<T> Update for Twhere
T: Write,
Source§fn try_maybe_update<U>(
&self,
fun: impl FnOnce(&mut <T as Update>::Value) -> (bool, U),
) -> Option<U>
fn try_maybe_update<U>( &self, fun: impl FnOnce(&mut <T as Update>::Value) -> (bool, U), ) -> Option<U>
Updates the value of the signal, notifying subscribers if the update function returns
(true, _), and returns the value returned by the update function,
or None if the signal has already been disposed.Source§fn update(&self, fun: impl FnOnce(&mut Self::Value))
fn update(&self, fun: impl FnOnce(&mut Self::Value))
Updates the value of the signal and notifies subscribers.
Source§impl<T> UpdateUntracked for Twhere
T: Write,
impl<T> UpdateUntracked for Twhere
T: Write,
Source§fn try_update_untracked<U>(
&self,
fun: impl FnOnce(&mut <T as UpdateUntracked>::Value) -> U,
) -> Option<U>
fn try_update_untracked<U>( &self, fun: impl FnOnce(&mut <T as UpdateUntracked>::Value) -> U, ) -> Option<U>
Updates the value by applying a function, returning the value returned by that function,
or
None if the signal has already been disposed.
Does not notify subscribers that the signal has changed.Source§impl<T> With for Twhere
T: Read,
impl<T> With for Twhere
T: Read,
Source§type Value = <<T as Read>::Value as Deref>::Target
type Value = <<T as Read>::Value as Deref>::Target
The type of the value contained in the signal.
Source§impl<T> WithUntracked for Twhere
T: DefinedAt + ReadUntracked,
impl<T> WithUntracked for Twhere
T: DefinedAt + ReadUntracked,
Source§type Value = <<T as ReadUntracked>::Value as Deref>::Target
type Value = <<T as ReadUntracked>::Value as Deref>::Target
The type of the value contained in the signal.
Source§fn try_with_untracked<U>(
&self,
fun: impl FnOnce(&<T as WithUntracked>::Value) -> U,
) -> Option<U>
fn try_with_untracked<U>( &self, fun: impl FnOnce(&<T as WithUntracked>::Value) -> U, ) -> Option<U>
Applies the closure to the value, and returns the result,
or
None if the signal has already been disposed.