Struct BoundedScope

Source
pub struct BoundedScope<'a, 'b: 'a> { /* private fields */ }

Implementations§

Source§

impl<'a> BoundedScope<'a, 'a>

Source

pub fn new(f: impl FnOnce(Scope<'a>) + 'a) -> ScopeDisposer<'a>

Creates a new scope.

This function returns a ScopeDisposer that must be used to dispose of the scope. If the disposer is not used, the scope will leak memory.

Source

pub fn immediate(f: impl FnOnce(Scope<'a>) + 'a)

Creates a new scope and immediately disposes it.

Source

pub fn child( self, f: impl for<'b> FnOnce(BoundedScope<'b, 'a>), ) -> ScopeDisposer<'a>

Creates a new child scope.

Source

pub fn alloc<T: Sendable + 'static>(&self, item: T) -> &'a T

Allocates an item in the scope.

Source

pub unsafe fn alloc_unsafe<T: Sendable + 'a>(self, item: T) -> &'a T

Allocates an item in the scope.

§Safety
  • item must never reference any other item in the arena in it’s Drop implementation.
Source

pub fn alloc_mut<T: Sendable + 'static>(&self, item: T) -> &'a mut T

Allocates an item in the scope.

Source

pub unsafe fn alloc_mut_unsafe<T: Sendable + 'a>(self, item: T) -> &'a mut T

Allocates an item in the scope.

§Safety
  • item must never reference any other item in the arena in it’s Drop implementation.
Source

pub fn signal<T: SendSync + 'static>(self, value: T) -> &'a Signal<T>

Creates a signal in the scope.

Source

pub fn untrack<T>(self, f: impl FnOnce() -> T) -> T

Runs a scope without tracking any dependencies.

Source

pub fn effect(self, f: impl FnMut() + Sendable + 'a)

Creates an effect.

Effects are callbacks that are run whenever a dependency changes (eg. a signal is updated).

§Examples
let signal = cx.signal(0);

cx.effect(|| {
    println!("signal is {}", signal.get()); // prints "signal is 0"
});

signal.set(1); // prints "signal is 1"
Source

pub fn effect_scoped( self, f: impl for<'b> FnMut(BoundedScope<'b, 'a>) + Sendable + 'a, )

Creates an effect in a child scope. See Scope::effect.

Source

pub fn memo<T: SendSync + 'static>( self, f: impl FnMut() -> T + Sendable + 'a, ) -> &'a ReadSignal<T>

Creates a signal that is recomputed every time a dependency is updated.

§Examples
let signal = cx.signal(0);

let memo = cx.memo(|| *signal.get() * 2);

assert_eq!(*memo, 0);

signal.set(2);
assert_eq!(*memo, 4);
Source

pub fn bind<T: Clone + PartialEq + SendSync + 'static>( self, signal_a: &'a Signal<T>, signal_b: &'a Signal<T>, )

This will create an effect that binds two signals together. Whenever one of the signals is updated, the other will be updated to the same value. This is useful for creating two-way bindings (eg. a checkbox).

When initializing the binding, the value of signal_b will be used.

Source

pub fn dynamic<T: SendSync + 'static>( self, f: impl FnMut(BoundedScope<'_, 'a>) -> T + Sendable + 'a, ) -> SharedSignal<T>

Creates a shared signal that is recomputed every time a dependency is updated.

Trait Implementations§

Source§

impl<'a, 'b: 'a> Clone for BoundedScope<'a, 'b>

Source§

fn clone(&self) -> BoundedScope<'a, 'b>

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<'a, 'b: 'a> Debug for BoundedScope<'a, 'b>

Source§

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

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

impl<'a, 'b: 'a> Copy for BoundedScope<'a, 'b>

Source§

impl<'a, 'b> Send for BoundedScope<'a, 'b>

Source§

impl<'a, 'b> Sync for BoundedScope<'a, 'b>

Auto Trait Implementations§

§

impl<'a, 'b> Freeze for BoundedScope<'a, 'b>

§

impl<'a, 'b> !RefUnwindSafe for BoundedScope<'a, 'b>

§

impl<'a, 'b> Unpin for BoundedScope<'a, 'b>

§

impl<'a, 'b> !UnwindSafe for BoundedScope<'a, 'b>

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

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Styleable<T> for T

Source§

fn styled(self) -> Styled<T>

Converts the self into a Styled<Self> value.
Source§

fn class(self, class: impl AsRef<str>) -> Styled<T>

Adds a class.
Source§

fn attr(self, key: &str, value: impl StyleAttributeBuilder) -> Styled<T>

Adds an attribute.
Source§

fn attr_trans( self, key: &str, value: impl Into<StyleAttributeValue>, transition: impl Into<StyleTransition>, ) -> Styled<T>

Adds an attribute with a transition.
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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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<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
Source§

impl<T> SendSync for T

Source§

impl<T> Sendable for T