Struct Reference

Source
pub struct Reference<T: Default + 'static> { /* private fields */ }
Expand description

A reference with interior mutability. Somewhat like RefCell. Returned by use_ref.

This can be read from and written to anytime. Writing to it does not trigger rerender.

This is often not neccessary. Use super::use_state() instead.

Implementations§

Source§

impl<T: Default + 'static> Reference<T>

Source

pub fn visit_with<Ret: 'static, F: FnOnce(&T) -> Ret>( &self, func: F, ) -> Result<Ret, SubtreeUnmountedError>

Run the given closure with a borrow of the data inside the Reference as argument.

Returns a Result with the Ok variant being the return value of your closure.

The error variant is SubtreeUnmountedError. This error is thrown if this function is called when the subtree where the use_ref this comes from had been unmounted.

Source

pub fn visit_mut_with<Ret: 'static, F: FnOnce(&mut T) -> Ret>( &self, func: F, ) -> Result<Ret, SubtreeUnmountedError>

Run the given closure with a mutable borrow of the data inside the Reference as argument.

Returns a Result with the Ok variant being the return value of your closure.

The error variant is SubtreeUnmountedError. This error is thrown if this function is called when the subtree where the use_ref this comes from had been unmounted.

Source

pub fn set_in(&self, value: T) -> Result<(), SubtreeUnmountedError>

Set the value in the Ref to the given value.

This does not trigger a rerender.

The error variant is SubtreeUnmountedError. This error is thrown if this function is called when the subtree where the use_ref this comes from had been unmounted.

Source§

impl<T: Clone + Default + 'static> Reference<T>

Source

pub fn clone_out(&self) -> Result<T, SubtreeUnmountedError>

Return a clone of the value inside the Ref.

The Ok variant is said value.

The error variant is SubtreeUnmountedError. This error is thrown if this function is called when the subtree where the use_ref this comes from had been unmounted.

Trait Implementations§

Source§

impl<T: Clone + Default + 'static> Clone for Reference<T>

Source§

fn clone(&self) -> Reference<T>

Returns a duplicate 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<T: Default + 'static> PartialEq for Reference<T>

Source§

fn eq(&self, other: &Reference<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

§

impl<T> Freeze for Reference<T>

§

impl<T> !RefUnwindSafe for Reference<T>

§

impl<T> !Send for Reference<T>

§

impl<T> !Sync for Reference<T>

§

impl<T> Unpin for Reference<T>

§

impl<T> !UnwindSafe for Reference<T>

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, 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> 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> ComponentProps for T
where T: PartialEq + Clone + 'static,