Struct RwSignal
pub struct RwSignal<T, S = SyncStorage> {
inner: ArenaItem<ArcRwSignal<T>, S>,
}Expand description
An arena-allocated signal that can be read from or written to.
A signal is a piece of data that may change over time, and notifies other code when it has changed. This is the atomic unit of reactivity, which begins all other processes of reactive updates.
This is an arena-allocated signal, which is Copy and is disposed when its reactive
Owner cleans up. For a reference-counted signal that lives
as long as a reference to it is alive, see ArcRwSignal.
ยงCore Trait Implementations
ยงReading the Value
.get()clones the current value of the signal. If you call it within an effect, it will cause that effect to subscribe to the signal, and to re-run whenever the value of the signal changes..get_untracked()clones the value of the signal without reactively tracking it.
.read()returns a guard that allows accessing the value of the signal by reference. If you call it within an effect, it will cause that effect to subscribe to the signal, and to re-run whenever the value of the signal changes..read_untracked()gives access to the current value of the signal without reactively tracking it.
.with()allows you to reactively access the signalโs value without cloning by applying a callback function..with_untracked()allows you to access the signalโs value by applying a callback function without reactively tracking it.
.to_stream()converts the signal to anasyncstream of values.
ยงUpdating the Value
.set()sets the signal to a new value..update()updates the value of the signal by applying a closure that takes a mutable reference..write()returns a guard through which the signal can be mutated, and which notifies subscribers when it is dropped.
Each of these has a related
_untracked()method, which updates the signal without notifying subscribers. Untracked updates are not desirable in most cases, as they cause โtearingโ between the signalโs value and its observed value. If you want a non-reactive container, usedArenaIteminstead.
ยงExamples
let count = ArcRwSignal::new(0);
// โ
calling the getter clones and returns the value
// this can be `count()` on nightly
assert_eq!(count.get(), 0);
// โ
calling the setter sets the value
// this can be `set_count(1)` on nightly
count.set(1);
assert_eq!(count.get(), 1);
// โ you could call the getter within the setter
// set_count.set(count.get() + 1);
// โ
however it's more efficient to use .update() and mutate the value in place
count.update(|count: &mut i32| *count += 1);
assert_eq!(count.get(), 2);
// โ
you can create "derived signals" with a Fn() -> T interface
let double_count = {
// clone before moving into the closure because we use it below
let count = count.clone();
move || count.get() * 2
};
count.set(0);
assert_eq!(double_count(), 0);
count.set(1);
assert_eq!(double_count(), 2);Fieldsยง
ยงinner: ArenaItem<ArcRwSignal<T>, S>Implementationsยง
ยงimpl<T, S> RwSignal<T, S>where
T: 'static,
S: Storage<ArcRwSignal<T>>,
impl<T, S> RwSignal<T, S>where
T: 'static,
S: Storage<ArcRwSignal<T>>,
pub fn new_with_storage(value: T) -> RwSignal<T, S>
pub fn new_with_storage(value: T) -> RwSignal<T, S>
Creates a new signal with the given arena storage method.
ยงimpl<T> RwSignal<T, LocalStorage>where
T: 'static,
impl<T> RwSignal<T, LocalStorage>where
T: 'static,
pub fn new_local(value: T) -> RwSignal<T, LocalStorage>
pub fn new_local(value: T) -> RwSignal<T, LocalStorage>
Creates a new signal, taking the initial value as its argument. Unlike RwSignal::new,
this pins the value to the current thread. Accessing it from any other thread will panic.
ยงimpl<T, S> RwSignal<T, S>
impl<T, S> RwSignal<T, S>
pub fn read_only(&self) -> ReadSignal<T, S>
pub fn read_only(&self) -> ReadSignal<T, S>
Returns a read-only handle to the signal.
ยงimpl<T, S> RwSignal<T, S>
impl<T, S> RwSignal<T, S>
pub fn write_only(&self) -> WriteSignal<T, S>
pub fn write_only(&self) -> WriteSignal<T, S>
Returns a write-only handle to the signal.
ยงimpl<T, S> RwSignal<T, S>where
T: 'static,
S: Storage<ArcRwSignal<T>> + Storage<ArcWriteSignal<T>> + Storage<ArcReadSignal<T>>,
impl<T, S> RwSignal<T, S>where
T: 'static,
S: Storage<ArcRwSignal<T>> + Storage<ArcWriteSignal<T>> + Storage<ArcReadSignal<T>>,
pub fn split(&self) -> (ReadSignal<T, S>, WriteSignal<T, S>)
pub fn split(&self) -> (ReadSignal<T, S>, WriteSignal<T, S>)
Splits the signal into its readable and writable halves.
pub fn unite(
read: ReadSignal<T, S>,
write: WriteSignal<T, S>,
) -> Option<RwSignal<T, S>>
pub fn unite( read: ReadSignal<T, S>, write: WriteSignal<T, S>, ) -> Option<RwSignal<T, S>>
Reunites the two halves of a signal. Returns None if the two signals
provided were not created from the same signal.
Trait Implementationsยง
ยงimpl<V, S> AddAnyAttr for RwSignal<V, S>
impl<V, S> AddAnyAttr for RwSignal<V, S>
ยงtype Output<SomeNewAttr: Attribute> = RwSignal<V, S>
type Output<SomeNewAttr: Attribute> = RwSignal<V, S>
ยงfn add_any_attr<NewAttr>(
self,
_attr: NewAttr,
) -> <RwSignal<V, S> as AddAnyAttr>::Output<NewAttr>where
NewAttr: Attribute,
fn add_any_attr<NewAttr>(
self,
_attr: NewAttr,
) -> <RwSignal<V, S> as AddAnyAttr>::Output<NewAttr>where
NewAttr: Attribute,
ยงimpl<V, S> AttributeValue for RwSignal<V, S>
impl<V, S> AttributeValue for RwSignal<V, S>
ยงtype AsyncOutput = RwSignal<V, S>
type AsyncOutput = RwSignal<V, S>
ยงtype State = RenderEffect<<V as AttributeValue>::State>
type State = RenderEffect<<V as AttributeValue>::State>
ยงtype Cloneable = RwSignal<V, S>
type Cloneable = RwSignal<V, S>
FnMut() continues mutating the same
closure), but making a String cloneable does not necessarily need to make it an
Arc<str>, as two different clones of a String will still have the same value.ยงtype CloneableOwned = RwSignal<V, S>
type CloneableOwned = RwSignal<V, S>
'static. This is used for spreading across types when the
spreadable attribute needs to be owned. In some cases (&'a str to Arc<str>, etc.) the owned
cloneable type has worse performance than the cloneable type, so they are separate.ยงfn to_template(_key: &str, _buf: &mut String)
fn to_template(_key: &str, _buf: &mut String)
<template>.ยงfn hydrate<const FROM_SERVER: bool>(
self,
key: &str,
el: &Element,
) -> <RwSignal<V, S> as AttributeValue>::State
fn hydrate<const FROM_SERVER: bool>( self, key: &str, el: &Element, ) -> <RwSignal<V, S> as AttributeValue>::State
<template>.ยงfn build(
self,
el: &Element,
key: &str,
) -> <RwSignal<V, S> as AttributeValue>::State
fn build( self, el: &Element, key: &str, ) -> <RwSignal<V, S> as AttributeValue>::State
ยงfn rebuild(
self,
key: &str,
state: &mut <RwSignal<V, S> as AttributeValue>::State,
)
fn rebuild( self, key: &str, state: &mut <RwSignal<V, S> as AttributeValue>::State, )
ยงfn into_cloneable(self) -> <RwSignal<V, S> as AttributeValue>::Cloneable
fn into_cloneable(self) -> <RwSignal<V, S> as AttributeValue>::Cloneable
ยงfn into_cloneable_owned(
self,
) -> <RwSignal<V, S> as AttributeValue>::CloneableOwned
fn into_cloneable_owned( self, ) -> <RwSignal<V, S> as AttributeValue>::CloneableOwned
'static.ยงfn dry_resolve(&mut self)
fn dry_resolve(&mut self)
ยงimpl<T, S> DefinedAt for RwSignal<T, S>
impl<T, S> DefinedAt for RwSignal<T, S>
ยงfn defined_at(&self) -> Option<&'static Location<'static>>
fn defined_at(&self) -> Option<&'static Location<'static>>
None in
release mode.ยงimpl<'de, T, S> Deserialize<'de> for RwSignal<T, S>
impl<'de, T, S> Deserialize<'de> for RwSignal<T, S>
ยงfn deserialize<D>(
deserializer: D,
) -> Result<RwSignal<T, S>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<RwSignal<T, S>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
ยงimpl<'a, T> From<&'a ArcRwSignal<T>> for RwSignal<T>
impl<'a, T> From<&'a ArcRwSignal<T>> for RwSignal<T>
ยงfn from(value: &'a ArcRwSignal<T>) -> RwSignal<T>
fn from(value: &'a ArcRwSignal<T>) -> RwSignal<T>
ยงimpl<T> From<ArcRwSignal<T>> for RwSignal<T>
impl<T> From<ArcRwSignal<T>> for RwSignal<T>
ยงfn from(value: ArcRwSignal<T>) -> RwSignal<T>
fn from(value: ArcRwSignal<T>) -> RwSignal<T>
ยงimpl<T> From<RwSignal<Option<T>, LocalStorage>> for MaybeProp<T, LocalStorage>
impl<T> From<RwSignal<Option<T>, LocalStorage>> for MaybeProp<T, LocalStorage>
ยงfn from(value: RwSignal<Option<T>, LocalStorage>) -> MaybeProp<T, LocalStorage>
fn from(value: RwSignal<Option<T>, LocalStorage>) -> MaybeProp<T, LocalStorage>
ยงimpl<T> From<RwSignal<T>> for MaybeSignal<T>
impl<T> From<RwSignal<T>> for MaybeSignal<T>
ยงfn from(value: RwSignal<T>) -> MaybeSignal<T>
fn from(value: RwSignal<T>) -> MaybeSignal<T>
ยงimpl<T> From<RwSignal<T, LocalStorage>> for MaybeProp<T, LocalStorage>
impl<T> From<RwSignal<T, LocalStorage>> for MaybeProp<T, LocalStorage>
ยงfn from(value: RwSignal<T, LocalStorage>) -> MaybeProp<T, LocalStorage>
fn from(value: RwSignal<T, LocalStorage>) -> MaybeProp<T, LocalStorage>
ยงimpl<T> From<RwSignal<T, LocalStorage>> for MaybeSignal<T, LocalStorage>
impl<T> From<RwSignal<T, LocalStorage>> for MaybeSignal<T, LocalStorage>
ยงfn from(value: RwSignal<T, LocalStorage>) -> MaybeSignal<T, LocalStorage>
fn from(value: RwSignal<T, LocalStorage>) -> MaybeSignal<T, LocalStorage>
ยงimpl<T> From<RwSignal<T, LocalStorage>> for Model<T, LocalStorage>
impl<T> From<RwSignal<T, LocalStorage>> for Model<T, LocalStorage>
ยงfn from(rw_signal: RwSignal<T, LocalStorage>) -> Model<T, LocalStorage>
fn from(rw_signal: RwSignal<T, LocalStorage>) -> Model<T, LocalStorage>
ยงimpl<T> From<RwSignal<T, LocalStorage>> for Signal<T, LocalStorage>where
T: 'static,
impl<T> From<RwSignal<T, LocalStorage>> for Signal<T, LocalStorage>where
T: 'static,
ยงfn from(value: RwSignal<T, LocalStorage>) -> Signal<T, LocalStorage>
fn from(value: RwSignal<T, LocalStorage>) -> Signal<T, LocalStorage>
ยงimpl<T, S> From<RwSignal<T, S>> for ArcRwSignal<T>where
T: 'static,
S: Storage<ArcRwSignal<T>>,
impl<T, S> From<RwSignal<T, S>> for ArcRwSignal<T>where
T: 'static,
S: Storage<ArcRwSignal<T>>,
ยงfn from(value: RwSignal<T, S>) -> ArcRwSignal<T>
fn from(value: RwSignal<T, S>) -> ArcRwSignal<T>
ยงimpl<T, S> From<RwSignal<T, S>> for SignalSetter<T, S>
impl<T, S> From<RwSignal<T, S>> for SignalSetter<T, S>
ยงfn from(value: RwSignal<T, S>) -> SignalSetter<T, S>
fn from(value: RwSignal<T, S>) -> SignalSetter<T, S>
ยงimpl<T> FromLocal<ArcRwSignal<T>> for RwSignal<T, LocalStorage>where
T: 'static,
impl<T> FromLocal<ArcRwSignal<T>> for RwSignal<T, LocalStorage>where
T: 'static,
ยงfn from_local(value: ArcRwSignal<T>) -> RwSignal<T, LocalStorage>
fn from_local(value: ArcRwSignal<T>) -> RwSignal<T, LocalStorage>
ยงimpl<V, S> InnerHtmlValue for RwSignal<V, S>
impl<V, S> InnerHtmlValue for RwSignal<V, S>
ยงtype AsyncOutput = RwSignal<V, S>
type AsyncOutput = RwSignal<V, S>
ยงtype State = RenderEffect<<V as InnerHtmlValue>::State>
type State = RenderEffect<<V as InnerHtmlValue>::State>
ยงtype CloneableOwned = RwSignal<V, S>
type CloneableOwned = RwSignal<V, S>
'static.ยงfn to_template(_buf: &mut String)
fn to_template(_buf: &mut String)
<template>.ยงfn hydrate<const FROM_SERVER: bool>(
self,
el: &Element,
) -> <RwSignal<V, S> as InnerHtmlValue>::State
fn hydrate<const FROM_SERVER: bool>( self, el: &Element, ) -> <RwSignal<V, S> as InnerHtmlValue>::State
<template>.ยงfn build(self, el: &Element) -> <RwSignal<V, S> as InnerHtmlValue>::State
fn build(self, el: &Element) -> <RwSignal<V, S> as InnerHtmlValue>::State
ยงfn into_cloneable(self) -> <RwSignal<V, S> as InnerHtmlValue>::Cloneable
fn into_cloneable(self) -> <RwSignal<V, S> as InnerHtmlValue>::Cloneable
ยงfn into_cloneable_owned(
self,
) -> <RwSignal<V, S> as InnerHtmlValue>::CloneableOwned
fn into_cloneable_owned( self, ) -> <RwSignal<V, S> as InnerHtmlValue>::CloneableOwned
ยงfn dry_resolve(&mut self)
fn dry_resolve(&mut self)
ยงimpl<V, S> IntoClass for RwSignal<V, S>
impl<V, S> IntoClass for RwSignal<V, S>
ยงtype AsyncOutput = RwSignal<V, S>
type AsyncOutput = RwSignal<V, S>
ยงtype State = RenderEffect<<V as IntoClass>::State>
type State = RenderEffect<<V as IntoClass>::State>
ยงtype CloneableOwned = RwSignal<V, S>
type CloneableOwned = RwSignal<V, S>
'static.ยงfn hydrate<const FROM_SERVER: bool>(
self,
el: &Element,
) -> <RwSignal<V, S> as IntoClass>::State
fn hydrate<const FROM_SERVER: bool>( self, el: &Element, ) -> <RwSignal<V, S> as IntoClass>::State
<template>.ยงfn build(self, el: &Element) -> <RwSignal<V, S> as IntoClass>::State
fn build(self, el: &Element) -> <RwSignal<V, S> as IntoClass>::State
ยงfn into_cloneable(self) -> <RwSignal<V, S> as IntoClass>::Cloneable
fn into_cloneable(self) -> <RwSignal<V, S> as IntoClass>::Cloneable
ยงfn into_cloneable_owned(self) -> <RwSignal<V, S> as IntoClass>::CloneableOwned
fn into_cloneable_owned(self) -> <RwSignal<V, S> as IntoClass>::CloneableOwned
ยงfn dry_resolve(&mut self)
fn dry_resolve(&mut self)
ยงasync fn resolve(self) -> <RwSignal<V, S> as IntoClass>::AsyncOutput
async fn resolve(self) -> <RwSignal<V, S> as IntoClass>::AsyncOutput
ยงfn reset(state: &mut <RwSignal<V, S> as IntoClass>::State)
fn reset(state: &mut <RwSignal<V, S> as IntoClass>::State)
ยงconst MIN_LENGTH: usize = _
const MIN_LENGTH: usize = _
ยงfn should_overwrite(&self) -> bool
fn should_overwrite(&self) -> bool
true for class="..." attributes, false for class:name=value directives.ยงfn to_template(class: &mut String)
fn to_template(class: &mut String)
<template>.ยงimpl<T, S> IntoInner for RwSignal<T, S>where
S: Storage<ArcRwSignal<T>>,
impl<T, S> IntoInner for RwSignal<T, S>where
S: Storage<ArcRwSignal<T>>,
ยงimpl<V, S> IntoProperty for RwSignal<V, S>
impl<V, S> IntoProperty for RwSignal<V, S>
ยงtype State = RenderEffect<<V as IntoProperty>::State>
type State = RenderEffect<<V as IntoProperty>::State>
ยงtype CloneableOwned = RwSignal<V, S>
type CloneableOwned = RwSignal<V, S>
'static.ยงfn hydrate<const FROM_SERVER: bool>(
self,
el: &Element,
key: &str,
) -> <RwSignal<V, S> as IntoProperty>::State
fn hydrate<const FROM_SERVER: bool>( self, el: &Element, key: &str, ) -> <RwSignal<V, S> as IntoProperty>::State
ยงfn build(
self,
el: &Element,
key: &str,
) -> <RwSignal<V, S> as IntoProperty>::State
fn build( self, el: &Element, key: &str, ) -> <RwSignal<V, S> as IntoProperty>::State
ยงfn rebuild(self, state: &mut <RwSignal<V, S> as IntoProperty>::State, key: &str)
fn rebuild(self, state: &mut <RwSignal<V, S> as IntoProperty>::State, key: &str)
ยงfn into_cloneable(self) -> <RwSignal<V, S> as IntoProperty>::Cloneable
fn into_cloneable(self) -> <RwSignal<V, S> as IntoProperty>::Cloneable
ยงfn into_cloneable_owned(
self,
) -> <RwSignal<V, S> as IntoProperty>::CloneableOwned
fn into_cloneable_owned( self, ) -> <RwSignal<V, S> as IntoProperty>::CloneableOwned
ยงimpl<T> IntoSplitSignal for RwSignal<T>
impl<T> IntoSplitSignal for RwSignal<T>
ยงtype Read = ReadSignal<T>
type Read = ReadSignal<T>
ยงtype Write = WriteSignal<T>
type Write = WriteSignal<T>
ยงfn into_split_signal(self) -> (ReadSignal<T>, WriteSignal<T>)
fn into_split_signal(self) -> (ReadSignal<T>, WriteSignal<T>)
ยงimpl<V, S> IntoStyle for RwSignal<V, S>
impl<V, S> IntoStyle for RwSignal<V, S>
ยงtype AsyncOutput = RwSignal<V, S>
type AsyncOutput = RwSignal<V, S>
ยงtype State = RenderEffect<<V as IntoStyle>::State>
type State = RenderEffect<<V as IntoStyle>::State>
ยงtype CloneableOwned = RwSignal<V, S>
type CloneableOwned = RwSignal<V, S>
'static.ยงfn hydrate<const FROM_SERVER: bool>(
self,
el: &Element,
) -> <RwSignal<V, S> as IntoStyle>::State
fn hydrate<const FROM_SERVER: bool>( self, el: &Element, ) -> <RwSignal<V, S> as IntoStyle>::State
<template>.ยงfn build(self, el: &Element) -> <RwSignal<V, S> as IntoStyle>::State
fn build(self, el: &Element) -> <RwSignal<V, S> as IntoStyle>::State
ยงfn into_cloneable(self) -> <RwSignal<V, S> as IntoStyle>::Cloneable
fn into_cloneable(self) -> <RwSignal<V, S> as IntoStyle>::Cloneable
ยงfn into_cloneable_owned(self) -> <RwSignal<V, S> as IntoStyle>::CloneableOwned
fn into_cloneable_owned(self) -> <RwSignal<V, S> as IntoStyle>::CloneableOwned
ยงfn dry_resolve(&mut self)
fn dry_resolve(&mut self)
ยงimpl<V, S> IntoStyleValue for RwSignal<V, S>
impl<V, S> IntoStyleValue for RwSignal<V, S>
ยงtype AsyncOutput = RwSignal<V, S>
type AsyncOutput = RwSignal<V, S>
ยงtype State = (Arc<str>, RenderEffect<<V as IntoStyleValue>::State>)
type State = (Arc<str>, RenderEffect<<V as IntoStyleValue>::State>)
ยงtype CloneableOwned = RwSignal<V, S>
type CloneableOwned = RwSignal<V, S>
'static.ยงfn build(
self,
style: &CssStyleDeclaration,
name: &str,
) -> <RwSignal<V, S> as IntoStyleValue>::State
fn build( self, style: &CssStyleDeclaration, name: &str, ) -> <RwSignal<V, S> as IntoStyleValue>::State
ยงfn rebuild(
self,
style: &CssStyleDeclaration,
name: &str,
state: &mut <RwSignal<V, S> as IntoStyleValue>::State,
)
fn rebuild( self, style: &CssStyleDeclaration, name: &str, state: &mut <RwSignal<V, S> as IntoStyleValue>::State, )
ยงfn hydrate(
self,
style: &CssStyleDeclaration,
name: &str,
) -> <RwSignal<V, S> as IntoStyleValue>::State
fn hydrate( self, style: &CssStyleDeclaration, name: &str, ) -> <RwSignal<V, S> as IntoStyleValue>::State
<template>.ยงfn into_cloneable(self) -> <RwSignal<V, S> as IntoStyleValue>::Cloneable
fn into_cloneable(self) -> <RwSignal<V, S> as IntoStyleValue>::Cloneable
ยงfn into_cloneable_owned(
self,
) -> <RwSignal<V, S> as IntoStyleValue>::CloneableOwned
fn into_cloneable_owned( self, ) -> <RwSignal<V, S> as IntoStyleValue>::CloneableOwned
ยงfn dry_resolve(&mut self)
fn dry_resolve(&mut self)
ยงimpl<T, S> IsDisposed for RwSignal<T, S>where
T: 'static,
impl<T, S> IsDisposed for RwSignal<T, S>where
T: 'static,
ยงfn is_disposed(&self) -> bool
fn is_disposed(&self) -> bool
true, the signal cannot be accessed without a panic.ยงimpl<T, S> Notify for RwSignal<T, S>where
S: Storage<ArcRwSignal<T>>,
impl<T, S> Notify for RwSignal<T, S>where
S: Storage<ArcRwSignal<T>>,
ยงimpl<T, S> ReadUntracked for RwSignal<T, S>where
T: 'static,
S: Storage<ArcRwSignal<T>>,
impl<T, S> ReadUntracked for RwSignal<T, S>where
T: 'static,
S: Storage<ArcRwSignal<T>>,
ยงtype Value = ReadGuard<T, Plain<T>>
type Value = ReadGuard<T, Plain<T>>
ยงfn try_read_untracked(&self) -> Option<<RwSignal<T, S> as ReadUntracked>::Value>
fn try_read_untracked(&self) -> Option<<RwSignal<T, S> as ReadUntracked>::Value>
None if the signal has already been disposed.ยงfn read_untracked(&self) -> Self::Value
fn read_untracked(&self) -> Self::Value
ยงfn custom_try_read(&self) -> Option<Option<Self::Value>>
fn custom_try_read(&self) -> Option<Option<Self::Value>>
Read::try_read implementation despite it being auto implemented. Read moreยงimpl<V, S> Render for RwSignal<V, S>
impl<V, S> Render for RwSignal<V, S>
ยงimpl<V, S> RenderHtml for RwSignal<V, S>
impl<V, S> RenderHtml for RwSignal<V, S>
ยงconst MIN_LENGTH: usize = 0usize
const MIN_LENGTH: usize = 0usize
ยงtype AsyncOutput = RwSignal<V, S>
type AsyncOutput = RwSignal<V, S>
ยงfn dry_resolve(&mut self)
fn dry_resolve(&mut self)
ยงasync fn resolve(self) -> <RwSignal<V, S> as RenderHtml>::AsyncOutput
async fn resolve(self) -> <RwSignal<V, S> as RenderHtml>::AsyncOutput
ยงfn to_html_with_buf(
self,
buf: &mut String,
position: &mut Position,
escape: bool,
mark_branches: bool,
extra_attrs: Vec<AnyAttribute>,
)
fn to_html_with_buf( self, buf: &mut String, position: &mut Position, escape: bool, mark_branches: bool, extra_attrs: Vec<AnyAttribute>, )
ยงfn to_html_async_with_buf<const OUT_OF_ORDER: bool>(
self,
buf: &mut StreamBuilder,
position: &mut Position,
escape: bool,
mark_branches: bool,
extra_attrs: Vec<AnyAttribute>,
)
fn to_html_async_with_buf<const OUT_OF_ORDER: bool>( self, buf: &mut StreamBuilder, position: &mut Position, escape: bool, mark_branches: bool, extra_attrs: Vec<AnyAttribute>, )
ยงfn hydrate<const FROM_SERVER: bool>(
self,
cursor: &Cursor,
position: &PositionState,
) -> <RwSignal<V, S> as Render>::State
fn hydrate<const FROM_SERVER: bool>( self, cursor: &Cursor, position: &PositionState, ) -> <RwSignal<V, S> as Render>::State
ยงfn into_owned(self) -> <RwSignal<V, S> as RenderHtml>::Owned
fn into_owned(self) -> <RwSignal<V, S> as RenderHtml>::Owned
'static.ยงconst EXISTS: bool = true
const EXISTS: bool = true
ยงfn to_html_branching(self) -> Stringwhere
Self: Sized,
fn to_html_branching(self) -> Stringwhere
Self: Sized,
ยงfn to_html_stream_in_order(self) -> StreamBuilderwhere
Self: Sized,
fn to_html_stream_in_order(self) -> StreamBuilderwhere
Self: Sized,
ยงfn to_html_stream_in_order_branching(self) -> StreamBuilderwhere
Self: Sized,
fn to_html_stream_in_order_branching(self) -> StreamBuilderwhere
Self: Sized,
ยงfn to_html_stream_out_of_order(self) -> StreamBuilderwhere
Self: Sized,
fn to_html_stream_out_of_order(self) -> StreamBuilderwhere
Self: Sized,
ยงfn to_html_stream_out_of_order_branching(self) -> StreamBuilderwhere
Self: Sized,
fn to_html_stream_out_of_order_branching(self) -> StreamBuilderwhere
Self: Sized,
ยงfn hydrate_async(
self,
cursor: &Cursor,
position: &PositionState,
) -> impl Future<Output = Self::State>
fn hydrate_async( self, cursor: &Cursor, position: &PositionState, ) -> impl Future<Output = Self::State>
ยงfn hydrate_from<const FROM_SERVER: bool>(self, el: &Element) -> Self::Statewhere
Self: Sized,
fn hydrate_from<const FROM_SERVER: bool>(self, el: &Element) -> Self::Statewhere
Self: Sized,
RenderHtml::hydrate, beginning at the given element.ยงfn hydrate_from_position<const FROM_SERVER: bool>(
self,
el: &Element,
position: Position,
) -> Self::Statewhere
Self: Sized,
fn hydrate_from_position<const FROM_SERVER: bool>(
self,
el: &Element,
position: Position,
) -> Self::Statewhere
Self: Sized,
RenderHtml::hydrate, beginning at the given element and position.ยงimpl<T, St> Serialize for RwSignal<T, St>
impl<T, St> Serialize for RwSignal<T, St>
ยงfn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
ยงimpl<T, S> SignalWatch for RwSignal<T, S>
impl<T, S> SignalWatch for RwSignal<T, S>
ยงfn watch(
&self,
f: impl Fn(&<RwSignal<T, S> as SignalWatch>::Value) + 'static,
) -> Box<dyn FnOnce()>
fn watch( &self, f: impl Fn(&<RwSignal<T, S> as SignalWatch>::Value) + 'static, ) -> Box<dyn FnOnce()>
ยงUsage
use leptos::prelude::*;
use thaw_utils::SignalWatch;
let count = RwSignal::new(0);
let stop = count.watch(|count| {
assert_eq!(count, &1);
});
count.set(1); // assert_eq!(count, &1);
stop(); // stop watching
count.set(2); // nothing happenstype Value = T
ยงimpl<T, S> Write for RwSignal<T, S>where
T: 'static,
S: Storage<ArcRwSignal<T>>,
impl<T, S> Write for RwSignal<T, S>where
T: 'static,
S: Storage<ArcRwSignal<T>>,
ยงfn try_write(&self) -> Option<impl UntrackableGuard>
fn try_write(&self) -> Option<impl UntrackableGuard>
None if the signal has already been disposed.ยงfn try_write_untracked(
&self,
) -> Option<UntrackedWriteGuard<<RwSignal<T, S> as Write>::Value>>
fn try_write_untracked( &self, ) -> Option<UntrackedWriteGuard<<RwSignal<T, S> as Write>::Value>>
None if the signal has already been disposed.ยงfn write(&self) -> impl UntrackableGuard
fn write(&self) -> impl UntrackableGuard
ยงfn write_untracked(&self) -> impl DerefMut
fn write_untracked(&self) -> impl DerefMut
impl<T, S> Copy for RwSignal<T, S>
impl<T, S> Eq for RwSignal<T, S>
Auto Trait Implementationsยง
impl<T, S> Freeze for RwSignal<T, S>
impl<T, S> RefUnwindSafe for RwSignal<T, S>
impl<T, S> Send for RwSignal<T, S>
impl<T, S> Sync for RwSignal<T, S>
impl<T, S> Unpin for RwSignal<T, S>
impl<T, S> UnwindSafe for RwSignal<T, S>
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
ยงimpl<V, Key, Sig, T> BindAttribute<Key, Sig, T> for Vwhere
V: AddAnyAttr,
Key: AttributeKey,
Sig: IntoSplitSignal<Value = T>,
T: FromEventTarget + AttributeValue + PartialEq + Sync + 'static,
Signal<BoolOrT<T>>: IntoProperty,
<Sig as IntoSplitSignal>::Read: Get<Value = T> + Send + Sync + Clone + 'static,
<Sig as IntoSplitSignal>::Write: Send + Clone + 'static,
Element: GetValue<T>,
impl<V, Key, Sig, T> BindAttribute<Key, Sig, T> for Vwhere
V: AddAnyAttr,
Key: AttributeKey,
Sig: IntoSplitSignal<Value = T>,
T: FromEventTarget + AttributeValue + PartialEq + Sync + 'static,
Signal<BoolOrT<T>>: IntoProperty,
<Sig as IntoSplitSignal>::Read: Get<Value = T> + Send + Sync + Clone + 'static,
<Sig as IntoSplitSignal>::Write: Send + Clone + 'static,
Element: GetValue<T>,
ยงtype Output = <V as AddAnyAttr>::Output<Bind<Key, T, <Sig as IntoSplitSignal>::Read, <Sig as IntoSplitSignal>::Write>>
type Output = <V as AddAnyAttr>::Output<Bind<Key, T, <Sig as IntoSplitSignal>::Read, <Sig as IntoSplitSignal>::Write>>
ยงfn bind(
self,
key: Key,
signal: Sig,
) -> <V as BindAttribute<Key, Sig, T>>::Output
fn bind( self, key: Key, signal: Sig, ) -> <V as BindAttribute<Key, Sig, T>>::Output
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.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, K, V> CustomAttribute<K, V> for Twhere
T: AddAnyAttr,
K: CustomAttributeKey,
V: AttributeValue,
impl<T, K, V> CustomAttribute<K, V> for Twhere
T: AddAnyAttr,
K: CustomAttributeKey,
V: AttributeValue,
ยงimpl<V, T, P, D> DirectiveAttribute<T, P, D> for Vwhere
V: AddAnyAttr,
D: IntoDirective<T, P>,
P: Clone + 'static,
T: 'static,
impl<V, T, P, D> DirectiveAttribute<T, P, D> for Vwhere
V: AddAnyAttr,
D: IntoDirective<T, P>,
P: Clone + 'static,
T: 'static,
ยงtype Output = <V as AddAnyAttr>::Output<Directive<T, D, P>>
type Output = <V as AddAnyAttr>::Output<Directive<T, D, P>>
ยงfn directive(
self,
handler: D,
param: P,
) -> <V as DirectiveAttribute<T, P, D>>::Output
fn directive( self, handler: D, param: P, ) -> <V as DirectiveAttribute<T, P, D>>::Output
ยง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>, which can then be
downcast into Box<dyn 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>, which 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> DowncastSend for T
impl<T> DowncastSend for T
ยงimpl<T> DowncastSync for T
impl<T> DowncastSync for T
ยงimpl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
ยงfn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.ยงimpl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
ยงfn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
ยงimpl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
ยงfn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
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.ยงimpl<T> FromFormData for Twhere
T: DeserializeOwned,
impl<T> FromFormData for Twhere
T: DeserializeOwned,
ยงfn from_event(ev: &Event) -> Result<T, FromFormDataError>
fn from_event(ev: &Event) -> Result<T, FromFormDataError>
submit event.ยงfn from_form_data(form_data: &FormData) -> Result<T, Error>
fn from_form_data(form_data: &FormData) -> Result<T, Error>
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> Hexable for Twhere
T: Serialize + for<'de> Deserialize<'de>,
impl<T> Hexable for Twhere
T: Serialize + for<'de> Deserialize<'de>,
ยงimpl<T> Instrument for T
impl<T> Instrument for T
ยงfn instrument(self, span: Span) -> Instrumented<Self> โ
fn instrument(self, span: Span) -> 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.ยงimpl<T> IntoAny for Twhere
T: Send + RenderHtml,
impl<T> IntoAny for Twhere
T: Send + RenderHtml,
ยงimpl<T> IntoAttributeValue for Twhere
T: AttributeValue,
impl<T> IntoAttributeValue for Twhere
T: AttributeValue,
ยงfn into_attribute_value(self) -> <T as IntoAttributeValue>::Output
fn into_attribute_value(self) -> <T as IntoAttributeValue>::Output
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 moreยงimpl<T> IntoMaybeErased for Twhere
T: RenderHtml,
impl<T> IntoMaybeErased for Twhere
T: RenderHtml,
ยงfn into_maybe_erased(self) -> <T as IntoMaybeErased>::Output
fn into_maybe_erased(self) -> <T as IntoMaybeErased>::Output
ยงimpl<T, S> IntoOptionGetter<T, SignalMarker> for S
impl<T, S> IntoOptionGetter<T, SignalMarker> for S
ยงfn into_option_getter(self) -> OptionGetter<T>
fn into_option_getter(self) -> OptionGetter<T>
OptionGetter.ยงimpl<T, I> IntoReactiveValue<T, __IntoReactiveValueMarkerBaseCase> for Iwhere
I: Into<T>,
impl<T, I> IntoReactiveValue<T, __IntoReactiveValueMarkerBaseCase> for Iwhere
I: Into<T>,
ยงfn into_reactive_value(self) -> T
fn into_reactive_value(self) -> T
self into a T.ยงimpl<T> IntoRender for Twhere
T: Render,
impl<T> IntoRender for Twhere
T: Render,
ยงfn into_render(self) -> <T as IntoRender>::Output
fn into_render(self) -> <T as IntoRender>::Output
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.ยงimpl<T> Pointable for T
impl<T> Pointable for T
ยงimpl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
ยงimpl<T> ReactiveNode for Twhere
T: AsSubscriberSet + DefinedAt,
impl<T> ReactiveNode for Twhere
T: AsSubscriberSet + DefinedAt,
ยงfn mark_dirty(&self)
fn mark_dirty(&self)
ยงfn mark_check(&self)
fn mark_check(&self)
ยงfn mark_subscribers_check(&self)
fn mark_subscribers_check(&self)
ยงfn update_if_necessary(&self) -> bool
fn update_if_necessary(&self) -> bool
ยงimpl<T> Read for Twhere
T: Track + ReadUntracked,
impl<T> Read for Twhere
T: Track + ReadUntracked,
ยงimpl<T> SerializableKey for T
impl<T> SerializableKey for T
ยงimpl<T> Set for Twhere
T: Update + IsDisposed,
impl<T> Set for Twhere
T: Update + IsDisposed,
ยงimpl<T> Source for Twhere
T: AsSubscriberSet + DefinedAt,
impl<T> Source for Twhere
T: AsSubscriberSet + DefinedAt,
ยงfn clear_subscribers(&self)
fn clear_subscribers(&self)
ยงfn add_subscriber(&self, subscriber: AnySubscriber)
fn add_subscriber(&self, subscriber: AnySubscriber)
ยงfn remove_subscriber(&self, subscriber: &AnySubscriber)
fn remove_subscriber(&self, subscriber: &AnySubscriber)
ยงimpl<T> StorageAccess<T> for T
impl<T> StorageAccess<T> for T
ยงfn as_borrowed(&self) -> &T
fn as_borrowed(&self) -> &T
ยงfn into_taken(self) -> T
fn into_taken(self) -> T
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 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
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
ยงimpl<T> Update for Twhere
T: Write,
impl<T> Update for Twhere
T: Write,
ยง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>
(true, _), and returns the value returned by the update function,
or None if the signal has already been disposed.ยงfn update(&self, fun: impl FnOnce(&mut Self::Value))
fn update(&self, fun: impl FnOnce(&mut Self::Value))
ยงfn maybe_update(&self, fun: impl FnOnce(&mut Self::Value) -> bool)
fn maybe_update(&self, fun: impl FnOnce(&mut Self::Value) -> bool)
true.ยงfn try_update<U>(&self, fun: impl FnOnce(&mut Self::Value) -> U) -> Option<U>
fn try_update<U>(&self, fun: impl FnOnce(&mut Self::Value) -> U) -> Option<U>
None if the signal has already been disposed.ยงimpl<T> UpdateUntracked for Twhere
T: Write,
impl<T> UpdateUntracked for Twhere
T: Write,
ยง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>
None if the signal has already been disposed.
Does not notify subscribers that the signal has changed.ยงfn update_untracked<U>(&self, fun: impl FnOnce(&mut Self::Value) -> U) -> U
fn update_untracked<U>(&self, fun: impl FnOnce(&mut Self::Value) -> U) -> U
ยงimpl<T> With for Twhere
T: Read,
impl<T> With for Twhere
T: Read,
ยงimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
ยงfn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> โwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> โwhere
S: Into<Dispatch>,
ยงfn with_current_subscriber(self) -> WithDispatch<Self> โ
fn with_current_subscriber(self) -> WithDispatch<Self> โ
ยงimpl<T> WithUntracked for Twhere
T: DefinedAt + ReadUntracked,
impl<T> WithUntracked for Twhere
T: DefinedAt + ReadUntracked,
ยงtype Value = <<T as ReadUntracked>::Value as Deref>::Target
type Value = <<T as ReadUntracked>::Value as Deref>::Target
ยง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>
None if the signal has already been disposed.