Skip to main content

Signal

Struct Signal 

Source
pub struct Signal<T> { /* private fields */ }
Expand description

Reactive state shared by browser expressions.

Create a signal with signal during rendering. Runtime expressions can read and write it. When its value changes, browser expressions that read it run again. Cloning a signal is cheap and refers to the same state.

On the server, get and read track the signal as a dependency. A change re-renders the enclosing shard, or the page if there is no shard. Use get_untracked or read_untracked to read without this dependency. Validate values read on the server because the client can supply them.

Implementations§

Source§

impl<T> Signal<T>

Source

pub fn read(&self) -> &T

Borrows the current value, tracking the signal as a dependency of the body reading it.

A change re-renders the enclosing shard, or the page if there is no shard. Repeated reads create only one dependency.

§Panics

Panics outside an active rendering scope or runtime expression.

Source

pub fn read_untracked(&self) -> &T

Borrows the current value without tracking the signal.

Outside runtime expressions, this creates no dependency and needs no rendering scope.

Source§

impl<T> Signal<T>
where T: Clone,

Source

pub fn get(&self) -> T

Clones the current value, tracking the signal as a dependency of the body reading it.

Uses the same tracking rules as read.

§Panics

Panics outside an active rendering scope or runtime expression.

Source

pub fn get_untracked(&self) -> T

Clones the current value without tracking the signal.

Uses the same tracking rules as read_untracked.

Trait Implementations§

Source§

impl<T> Clone for Signal<T>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug> Debug for Signal<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T> Surrogated for Signal<T>

Source§

impl<'__lifetime, T> Surrogated for &'__lifetime Signal<T>

Source§

type Surrogate = &'__lifetime SignalSurrogate<T>

Source§

fn into_surrogate(self) -> Self::Surrogate

Source§

impl<'__lifetime, T> Surrogated for &'__lifetime mut Signal<T>

Source§

type Surrogate = &'__lifetime mut SignalSurrogate<T>

Source§

fn into_surrogate(self) -> Self::Surrogate

Auto Trait Implementations§

§

impl<T> Freeze for Signal<T>
where Arc<T>: Freeze,

§

impl<T> RefUnwindSafe for Signal<T>
where Arc<T>: RefUnwindSafe,

§

impl<T> Send for Signal<T>
where Arc<T>: Send,

§

impl<T> Sync for Signal<T>
where Arc<T>: Sync,

§

impl<T> Unpin for Signal<T>
where Arc<T>: Unpin,

§

impl<T> UnsafeUnpin for Signal<T>
where Arc<T>: UnsafeUnpin,

§

impl<T> UnwindSafe for Signal<T>
where Arc<T>: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneAny for T
where T: Any + Clone,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SignalValue for T

Source§

type Surrogate<'a> = <&'a T as Surrogated>::Surrogate where T: 'a

The serializable surrogate of a borrowed value.
Source§

fn surrogate(&self) -> <T as SignalValue>::Surrogate<'_>

Borrows the value as its surrogate.
Source§

fn from_value(value: &Value) -> Option<T>

Reads a value back from the surrogate a client sent, or None if the surrogate does not fit this type.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more