pub enum MaybeSignal<T, S = SyncStorage>where
T: 'static,
S: Storage<T>,{
Static(T),
Dynamic(Signal<T, S>),
}๐Deprecated since 0.7.0-rc3:
MaybeSignal<T> is deprecated in favour of Signal<T> which is Copy, now has a more efficient From<T> implementation and other benefits in 0.7.Expand description
A wrapper for a value that is either T or Signal<T>.
This allows you to create APIs that take either a reactive or a non-reactive value of the same type. This is especially useful for component properties.
let (count, set_count) = signal(2);
let double_count = MaybeSignal::derive(move || count.get() * 2);
let memoized_double_count = Memo::new(move |_| count.get() * 2);
let static_value = 5;
// this function takes either a reactive or non-reactive value
fn above_3(arg: &MaybeSignal<i32>) -> bool {
// โ
calling the signal clones and returns the value
// it is a shorthand for arg.get()
arg.get() > 3
}
assert_eq!(above_3(&static_value.into()), true);
assert_eq!(above_3(&count.into()), false);
assert_eq!(above_3(&double_count), true);
assert_eq!(above_3(&memoized_double_count.into()), true);Variantsยง
Static(T)
๐Deprecated since 0.7.0-rc3:
MaybeSignal<T> is deprecated in favour of Signal<T> which is Copy, now has a more efficient From<T> implementation and other benefits in 0.7.An unchanging value of type T.
Dynamic(Signal<T, S>)
๐Deprecated since 0.7.0-rc3:
MaybeSignal<T> is deprecated in favour of Signal<T> which is Copy, now has a more efficient From<T> implementation and other benefits in 0.7.A reactive signal that contains a value of type T.
Implementationsยง
Sourceยงimpl<T> MaybeSignal<T>
impl<T> MaybeSignal<T>
Sourceยงimpl<T> MaybeSignal<T, LocalStorage>
impl<T> MaybeSignal<T, LocalStorage>
Sourcepub fn derive_local(derived_signal: impl Fn() -> T + 'static) -> Self
pub fn derive_local(derived_signal: impl Fn() -> T + 'static) -> Self
Wraps a derived signal, i.e., any computation that accesses one or more reactive signals.
Trait Implementationsยง
Sourceยงimpl<T, S> Debug for MaybeSignal<T, S>
impl<T, S> Debug for MaybeSignal<T, S>
Sourceยงimpl<T, S> DefinedAt for MaybeSignal<T, S>where
S: Storage<T>,
impl<T, S> DefinedAt for MaybeSignal<T, S>where
S: Storage<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<'de, T: Deserialize<'de>, St> Deserialize<'de> for MaybeSignal<T, St>where
St: Storage<T>,
impl<'de, T: Deserialize<'de>, St> Deserialize<'de> for MaybeSignal<T, St>where
St: Storage<T>,
Sourceยงfn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Sourceยงimpl<T, S> Fn() for MaybeSignal<T, S>where
MaybeSignal<T, S>: Get,
S: Storage<T> + Storage<Option<T>> + Storage<SignalTypes<Option<T>, S>>,
Available on crate feature nightly only.
impl<T, S> Fn() for MaybeSignal<T, S>where
MaybeSignal<T, S>: Get,
S: Storage<T> + Storage<Option<T>> + Storage<SignalTypes<Option<T>, S>>,
Available on crate feature
nightly only.Sourceยงimpl<T, S> FnMut() for MaybeSignal<T, S>where
MaybeSignal<T, S>: Get,
S: Storage<T> + Storage<Option<T>> + Storage<SignalTypes<Option<T>, S>>,
Available on crate feature nightly only.
impl<T, S> FnMut() for MaybeSignal<T, S>where
MaybeSignal<T, S>: Get,
S: Storage<T> + Storage<Option<T>> + Storage<SignalTypes<Option<T>, S>>,
Available on crate feature
nightly only.Sourceยงimpl<T, S> FnOnce() for MaybeSignal<T, S>where
MaybeSignal<T, S>: Get,
S: Storage<T> + Storage<Option<T>> + Storage<SignalTypes<Option<T>, S>>,
Available on crate feature nightly only.
impl<T, S> FnOnce() for MaybeSignal<T, S>where
MaybeSignal<T, S>: Get,
S: Storage<T> + Storage<Option<T>> + Storage<SignalTypes<Option<T>, S>>,
Available on crate feature
nightly only.Sourceยงimpl<T> From<ArcMemo<T>> for MaybeSignal<T>
impl<T> From<ArcMemo<T>> for MaybeSignal<T>
Sourceยงimpl<T> From<ArcReadSignal<T>> for MaybeSignal<T>
impl<T> From<ArcReadSignal<T>> for MaybeSignal<T>
Sourceยงfn from(value: ArcReadSignal<T>) -> Self
fn from(value: ArcReadSignal<T>) -> Self
Converts to this type from the input type.
Sourceยงimpl<T> From<ArcRwSignal<T>> for MaybeSignal<T>
impl<T> From<ArcRwSignal<T>> for MaybeSignal<T>
Sourceยงfn from(value: ArcRwSignal<T>) -> Self
fn from(value: ArcRwSignal<T>) -> Self
Converts to this type from the input type.
Sourceยงimpl<T> From<MaybeSignal<Option<T>>> for MaybeProp<T>
impl<T> From<MaybeSignal<Option<T>>> for MaybeProp<T>
Sourceยงfn from(value: MaybeSignal<Option<T>>) -> Self
fn from(value: MaybeSignal<Option<T>>) -> Self
Converts to this type from the input type.
Sourceยงimpl<T> From<MaybeSignal<Option<T>, LocalStorage>> for MaybeProp<T, LocalStorage>
impl<T> From<MaybeSignal<Option<T>, LocalStorage>> for MaybeProp<T, LocalStorage>
Sourceยงfn from(value: MaybeSignal<Option<T>, LocalStorage>) -> Self
fn from(value: MaybeSignal<Option<T>, LocalStorage>) -> Self
Converts to this type from the input type.
Sourceยงimpl<T> From<MaybeSignal<T>> for Signal<Option<T>>
impl<T> From<MaybeSignal<T>> for Signal<Option<T>>
Sourceยงfn from(value: MaybeSignal<T>) -> Self
fn from(value: MaybeSignal<T>) -> Self
Converts to this type from the input type.
Sourceยงimpl<T> From<MaybeSignal<T>> for Signal<T>
impl<T> From<MaybeSignal<T>> for Signal<T>
Sourceยงfn from(value: MaybeSignal<T>) -> Self
fn from(value: MaybeSignal<T>) -> Self
Converts to this type from the input type.
Sourceยงimpl<T> From<MaybeSignal<T, LocalStorage>> for Signal<Option<T>, LocalStorage>
impl<T> From<MaybeSignal<T, LocalStorage>> for Signal<Option<T>, LocalStorage>
Sourceยงfn from(value: MaybeSignal<T, LocalStorage>) -> Self
fn from(value: MaybeSignal<T, LocalStorage>) -> Self
Converts to this type from the input type.
Sourceยงimpl<T> From<MaybeSignal<T, LocalStorage>> for Signal<T, LocalStorage>
impl<T> From<MaybeSignal<T, LocalStorage>> for Signal<T, LocalStorage>
Sourceยงfn from(value: MaybeSignal<T, LocalStorage>) -> Self
fn from(value: MaybeSignal<T, LocalStorage>) -> Self
Converts to this type from the input type.
Sourceยงimpl<T> From<Memo<T>> for MaybeSignal<T>
impl<T> From<Memo<T>> for MaybeSignal<T>
Sourceยงimpl<T> From<Memo<T, LocalStorage>> for MaybeSignal<T, LocalStorage>
impl<T> From<Memo<T, LocalStorage>> for MaybeSignal<T, LocalStorage>
Sourceยงfn from(value: Memo<T, LocalStorage>) -> Self
fn from(value: Memo<T, LocalStorage>) -> Self
Converts to this type from the input type.
Sourceยงimpl<T> From<ReadSignal<T>> for MaybeSignal<T>
impl<T> From<ReadSignal<T>> for MaybeSignal<T>
Sourceยงfn from(value: ReadSignal<T>) -> Self
fn from(value: ReadSignal<T>) -> Self
Converts to this type from the input type.
Sourceยงimpl<T> From<ReadSignal<T, LocalStorage>> for MaybeSignal<T, LocalStorage>
impl<T> From<ReadSignal<T, LocalStorage>> for MaybeSignal<T, LocalStorage>
Sourceยงfn from(value: ReadSignal<T, LocalStorage>) -> Self
fn from(value: ReadSignal<T, LocalStorage>) -> Self
Converts to this type from the input type.
Sourceยงimpl<T> From<RwSignal<T>> for MaybeSignal<T>
impl<T> From<RwSignal<T>> for MaybeSignal<T>
Sourceยงimpl<T> From<RwSignal<T, LocalStorage>> for MaybeSignal<T, LocalStorage>
impl<T> From<RwSignal<T, LocalStorage>> for MaybeSignal<T, LocalStorage>
Sourceยงfn from(value: RwSignal<T, LocalStorage>) -> Self
fn from(value: RwSignal<T, LocalStorage>) -> Self
Converts to this type from the input type.
Sourceยงimpl<T> From<T> for MaybeSignal<T, SyncStorage>where
SyncStorage: Storage<T>,
impl<T> From<T> for MaybeSignal<T, SyncStorage>where
SyncStorage: Storage<T>,
Sourceยงimpl<T> FromLocal<ArcMemo<T, LocalStorage>> for MaybeSignal<T, LocalStorage>
impl<T> FromLocal<ArcMemo<T, LocalStorage>> for MaybeSignal<T, LocalStorage>
Sourceยงfn from_local(value: ArcMemo<T, LocalStorage>) -> Self
fn from_local(value: ArcMemo<T, LocalStorage>) -> Self
Converts between the types.
Sourceยงimpl<T> FromLocal<ArcReadSignal<T>> for MaybeSignal<T, LocalStorage>
impl<T> FromLocal<ArcReadSignal<T>> for MaybeSignal<T, LocalStorage>
Sourceยงfn from_local(value: ArcReadSignal<T>) -> Self
fn from_local(value: ArcReadSignal<T>) -> Self
Converts between the types.
Sourceยงimpl<T> FromLocal<ArcRwSignal<T>> for MaybeSignal<T, LocalStorage>where
T: 'static,
impl<T> FromLocal<ArcRwSignal<T>> for MaybeSignal<T, LocalStorage>where
T: 'static,
Sourceยงfn from_local(value: ArcRwSignal<T>) -> Self
fn from_local(value: ArcRwSignal<T>) -> Self
Converts between the types.
Sourceยงimpl<T> FromLocal<T> for MaybeSignal<T, LocalStorage>where
LocalStorage: Storage<T>,
impl<T> FromLocal<T> for MaybeSignal<T, LocalStorage>where
LocalStorage: Storage<T>,
Sourceยงfn from_local(value: T) -> Self
fn from_local(value: T) -> Self
Converts between the types.
Sourceยงimpl<T, S> PartialEq for MaybeSignal<T, S>
impl<T, S> PartialEq for MaybeSignal<T, S>
Sourceยงimpl<T, S> ReadUntracked for MaybeSignal<T, S>
impl<T, S> ReadUntracked for MaybeSignal<T, S>
Sourceยงtype Value = ReadGuard<T, SignalReadGuard<T, S>>
type Value = ReadGuard<T, SignalReadGuard<T, S>>
The guard type that will be returned, which can be dereferenced to the value.
Sourceยงfn try_read_untracked(&self) -> Option<Self::Value>
fn try_read_untracked(&self) -> Option<Self::Value>
Returns the guard, or
None if the signal has already been disposed.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ยงfn read_untracked(&self) -> Self::Value
fn read_untracked(&self) -> Self::Value
Returns the guard. Read more
Sourceยงimpl<T, St> Serialize for MaybeSignal<T, St>
impl<T, St> Serialize for MaybeSignal<T, St>
Sourceยงimpl<T, S> Track for MaybeSignal<T, S>
impl<T, S> Track for MaybeSignal<T, S>
impl<T: Copy, S> Copy for MaybeSignal<T, S>where
S: Storage<T>,
impl<T, S> Eq for MaybeSignal<T, S>
impl<T, S> StructuralPartialEq for MaybeSignal<T, S>where
T: 'static,
S: Storage<T>,
Auto Trait Implementationsยง
impl<T, S> Freeze for MaybeSignal<T, S>where
T: Freeze,
impl<T, S> RefUnwindSafe for MaybeSignal<T, S>where
T: RefUnwindSafe,
impl<T, S> Send for MaybeSignal<T, S>where
T: Send,
impl<T, S> Sync for MaybeSignal<T, S>where
T: Sync,
impl<T, S> Unpin for MaybeSignal<T, S>where
T: Unpin,
impl<T, S> UnwindSafe for MaybeSignal<T, S>where
T: UnwindSafe,
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Sourceยงimpl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Sourceยงfn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Sourceยงimpl<S, T> FromStream<T> for S
impl<S, T> FromStream<T> for S
Sourceยงfn from_stream(stream: impl Stream<Item = T> + Send + 'static) -> S
fn from_stream(stream: impl Stream<Item = T> + Send + 'static) -> S
Creates a signal that contains the latest value of the stream.
Sourceยงfn from_stream_unsync(stream: impl Stream<Item = T> + 'static) -> S
fn from_stream_unsync(stream: impl Stream<Item = T> + 'static) -> S
Creates a signal that contains the latest value of the stream.
Sourceยงimpl<T> Instrument for T
impl<T> Instrument for T
Sourceยงfn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Sourceยงfn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Sourceยงimpl<T> Read for Twhere
T: Track + ReadUntracked,
impl<T> Read for Twhere
T: Track + ReadUntracked,
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> 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> WithSubscriber for T
impl<T> WithSubscriber for T
Sourceยงfn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Sourceยงfn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
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.