Skip to main content

RenderEffect

Struct RenderEffect 

Source
pub struct RenderEffect { /* private fields */ }
Expand description

A function that reruns when a signal or memo it read changes.

The first run happens when the effect is created, with tracking, so the sources it reaches are the ones that wake it later. Every run re-tracks from scratch, which makes conditional reads work.

The effect is owned by the current owner: cleaning that owner up, or dropping its last handle, stops the effect and frees its closure. Created with no current owner, the effect lives until the returned handle drops. Dropping the handle of an owned effect does nothing.

A write inside an effect body queues the effect again, and a body that keeps waking itself is stopped at a fixed number of runs per flush: debug builds panic, release builds skip the effect for the rest of that flush.

Implementations§

Source§

impl RenderEffect

Source

pub fn new<T>(run: impl FnMut() -> T + 'static) -> RenderEffect

Creates an effect and runs its body once, with tracking.

The effect is owned by the current owner, when there is one. See the type’s documentation for the lifetime rules. The body’s return value is ignored.

Trait Implementations§

Source§

impl Drop for RenderEffect

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, 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.