pub trait Writable: Readable {
    type Mut<'a, R: ?Sized + 'static>: DerefMut<Target = R>;

Show 13 methods // Required methods fn map_mut<I: ?Sized, U: ?Sized, F: FnOnce(&mut I) -> &mut U>( ref_: Self::Mut<'_, I>, f: F ) -> Self::Mut<'_, U>; fn try_map_mut<I: ?Sized, U: ?Sized, F: FnOnce(&mut I) -> Option<&mut U>>( ref_: Self::Mut<'_, I>, f: F ) -> Option<Self::Mut<'_, U>>; fn downcast_lifetime_mut<'a: 'b, 'b, T: ?Sized + 'static>( mut_: Self::Mut<'a, T> ) -> Self::Mut<'b, T>; fn try_write_unchecked( &self ) -> Result<WritableRef<'static, Self>, BorrowMutError>; // Provided methods fn write(&mut self) -> WritableRef<'_, Self> { ... } fn try_write(&mut self) -> Result<WritableRef<'_, Self>, BorrowMutError> { ... } fn write_unchecked(&self) -> WritableRef<'static, Self> { ... } fn with_mut<O>(&mut self, f: impl FnOnce(&mut Self::Target) -> O) -> O { ... } fn set(&mut self, value: Self::Target) where Self::Target: Sized { ... } fn toggle(&mut self) where Self::Target: Not<Output = Self::Target> + Clone { ... } fn index_mut<I>( &mut self, index: I ) -> WritableRef<'_, Self, <Self::Target as Index<I>>::Output> where Self::Target: IndexMut<I> { ... } fn take(&mut self) -> Self::Target where Self::Target: Default { ... } fn replace(&mut self, value: Self::Target) -> Self::Target where Self::Target: Sized { ... }
}
Expand description

A trait for states that can be read from like crate::Signal, or crate::GlobalSignal. You may choose to accept this trait as a parameter instead of the concrete type to allow for more flexibility in your API. For example, instead of creating two functions, one that accepts a crate::Signal and one that accepts a crate::GlobalSignal, you can create one function that accepts a Writable type.

Required Associated Types§

source

type Mut<'a, R: ?Sized + 'static>: DerefMut<Target = R>

The type of the reference.

Required Methods§

source

fn map_mut<I: ?Sized, U: ?Sized, F: FnOnce(&mut I) -> &mut U>( ref_: Self::Mut<'_, I>, f: F ) -> Self::Mut<'_, U>

Map the reference to a new type.

source

fn try_map_mut<I: ?Sized, U: ?Sized, F: FnOnce(&mut I) -> Option<&mut U>>( ref_: Self::Mut<'_, I>, f: F ) -> Option<Self::Mut<'_, U>>

Try to map the reference to a new type.

source

fn downcast_lifetime_mut<'a: 'b, 'b, T: ?Sized + 'static>( mut_: Self::Mut<'a, T> ) -> Self::Mut<'b, T>

Downcast a mutable reference in a RefMut to a more specific lifetime

This function enforces the variance of the lifetime parameter 'a in Ref.

source

fn try_write_unchecked( &self ) -> Result<WritableRef<'static, Self>, BorrowMutError>

Try to get a mutable reference to the value without checking the lifetime. This will update any subscribers.

NOTE: This method is completely safe because borrow checking is done at runtime.

Provided Methods§

source

fn write(&mut self) -> WritableRef<'_, Self>

Get a mutable reference to the value. If the value has been dropped, this will panic.

source

fn try_write(&mut self) -> Result<WritableRef<'_, Self>, BorrowMutError>

Try to get a mutable reference to the value.

source

fn write_unchecked(&self) -> WritableRef<'static, Self>

Get a mutable reference to the value without checking the lifetime. This will update any subscribers.

NOTE: This method is completely safe because borrow checking is done at runtime.

source

fn with_mut<O>(&mut self, f: impl FnOnce(&mut Self::Target) -> O) -> O

Run a function with a mutable reference to the value. If the value has been dropped, this will panic.

source

fn set(&mut self, value: Self::Target)
where Self::Target: Sized,

Set the value of the signal. This will trigger an update on all subscribers.

source

fn toggle(&mut self)
where Self::Target: Not<Output = Self::Target> + Clone,

Invert the boolean value of the signal. This will trigger an update on all subscribers.

source

fn index_mut<I>( &mut self, index: I ) -> WritableRef<'_, Self, <Self::Target as Index<I>>::Output>
where Self::Target: IndexMut<I>,

Index into the inner value and return a reference to the result.

source

fn take(&mut self) -> Self::Target
where Self::Target: Default,

Takes the value out of the Signal, leaving a Default in its place.

source

fn replace(&mut self, value: Self::Target) -> Self::Target
where Self::Target: Sized,

Replace the value in the Signal, returning the old value.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T: 'static> Writable for GlobalSignal<T>

§

type Mut<'a, R: ?Sized + 'static> = Write<'a, R>

source§

impl<T: 'static, S: Storage<SignalData<T>>> Writable for Signal<T, S>

§

type Mut<'a, R: ?Sized + 'static> = Write<'a, R, S>

source§

impl<T: 'static, S: Storage<T>> Writable for CopyValue<T, S>

§

type Mut<'a, R: ?Sized + 'static> = <S as AnyStorage>::Mut<'a, R>