pub struct Signal<T>{ /* private fields */ }Expand description
A reactive signal handle.
Allows reading, writing, and subscribing to changes.
Implements Copy for ergonomic use; all copies share the same underlying state.
SAFETY: The inner pointer is allocated via Box::leak and lives for the
entire program. This is safe in single-threaded WASM contexts where no
concurrent access can occur.
Implementations§
Source§impl<T> Signal<T>
Implementation of reactive signal operations.
impl<T> Signal<T>
Implementation of reactive signal operations.
Sourcepub fn from_inner(inner: *mut SignalInner<T>) -> Self
pub fn from_inner(inner: *mut SignalInner<T>) -> Self
Creates a new Signal from an existing raw pointer.
§Safety
The caller must ensure the pointer was allocated via Box::leak
and remains valid for the entire program lifetime.
Sourcepub fn try_get(&self) -> Option<T>
pub fn try_get(&self) -> Option<T>
Attempts to return the current value of the signal without panicking.
§Returns
Some(T): The current value if the borrow succeeds.None: If the inner value is already mutably borrowed.
Sourcepub fn subscribe<F>(&self, callback: F)where
F: FnMut() + 'static,
pub fn subscribe<F>(&self, callback: F)where
F: FnMut() + 'static,
Subscribes a callback to be invoked when the signal changes.
Sourcepub fn set(&self, value: T)
pub fn set(&self, value: T)
Sets the value of the signal and notifies listeners.
If the new value is equal to the current value, no update is performed and no listeners are notified. This prevents unnecessary re-renders and avoids cascading no-op updates through intermediate signal chains.
Sourcepub fn try_set(&self, value: T) -> bool
pub fn try_set(&self, value: T) -> bool
Attempts to set the value of the signal and notify listeners without panicking.
If the new value is equal to the current value, no update is performed.
§Arguments
value: The new value to assign to the signal.
§Returns
true: If the value was successfully updated and listeners were notified.false: If the value is unchanged and no update was performed.
Trait Implementations§
Source§impl<T> AsNode for Signal<T>
Converts a signal into a reactive text virtual node.
impl<T> AsNode for Signal<T>
Converts a signal into a reactive text virtual node.
Source§fn as_node(&self) -> Option<VirtualNode>
fn as_node(&self) -> Option<VirtualNode>
VirtualNode, if possible.Source§impl<T> AsReactiveText for Signal<T>
Converts a signal into a reactive text node with listener wiring.
impl<T> AsReactiveText for Signal<T>
Converts a signal into a reactive text node with listener wiring.
Source§fn as_reactive_text(&self) -> VirtualNode
fn as_reactive_text(&self) -> VirtualNode
VirtualNode::Text with reactive signal binding.Source§impl<T> Deref for Signal<T>
Prevents direct dereference of a signal to enforce explicit API usage.
impl<T> Deref for Signal<T>
Prevents direct dereference of a signal to enforce explicit API usage.
Source§impl<T> DerefMut for Signal<T>
Prevents direct mutable dereference of a signal to enforce explicit API usage.
impl<T> DerefMut for Signal<T>
Prevents direct mutable dereference of a signal to enforce explicit API usage.
Source§impl<T> IntoNode for Signal<T>
Converts a signal into a reactive text virtual node via IntoNode.
impl<T> IntoNode for Signal<T>
Converts a signal into a reactive text virtual node via IntoNode.
Source§fn into_node(self) -> VirtualNode
fn into_node(self) -> VirtualNode
VirtualNode by consuming it.Source§impl IntoReactiveValue for Signal<String>
Converts a string signal into a reactive attribute value.
impl IntoReactiveValue for Signal<String>
Converts a string signal into a reactive attribute value.
Source§fn into_reactive_value(self) -> AttributeValue
fn into_reactive_value(self) -> AttributeValue
AttributeValue, wrapping signals
for reactive updates or converting static values to text.Source§impl IntoReactiveValue for Signal<bool>
Converts a mutable bool signal into a reactive attribute value.
impl IntoReactiveValue for Signal<bool>
Converts a mutable bool signal into a reactive attribute value.
The signal is mapped to a Signal<String> that yields "true" or "false",
enabling boolean attributes like checked to reactively update the DOM.
Source§fn into_reactive_value(self) -> AttributeValue
fn into_reactive_value(self) -> AttributeValue
AttributeValue, wrapping signals
for reactive updates or converting static values to text.impl<T> Copy for Signal<T>
Copies the signal, sharing the same inner state.
A Signal is just a raw pointer; copying it is a trivial bitwise copy.