pub struct StateHandle<HANDLER>where
HANDLER: StateHandler,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone + 'static,{ /* private fields */ }Expand description
Interface to shared state
Implementations§
Source§impl<HANDLER> StateHandle<HANDLER>where
HANDLER: StateHandler,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone + 'static,
impl<HANDLER> StateHandle<HANDLER>where
HANDLER: StateHandler,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone + 'static,
pub fn link(&self) -> &HandlerLink<HANDLER>
pub fn state(&self) -> &<HANDLER as StateHandler>::Model
Sourcepub fn reduce(
&self,
f: impl FnOnce(&mut <HANDLER as StateHandler>::Model) + 'static,
)
pub fn reduce( &self, f: impl FnOnce(&mut <HANDLER as StateHandler>::Model) + 'static, )
Apply a function that may mutate shared state.
Changes are not immediate, and must be handled in Component::change.
Sourcepub fn reduce_callback<E: 'static>(
&self,
f: impl Fn(&mut <HANDLER as StateHandler>::Model) + 'static,
) -> Callback<E>where
<HANDLER as StateHandler>::Model: 'static,
pub fn reduce_callback<E: 'static>(
&self,
f: impl Fn(&mut <HANDLER as StateHandler>::Model) + 'static,
) -> Callback<E>where
<HANDLER as StateHandler>::Model: 'static,
Convenience method for modifying shared state directly from a Callback.
The callback event is ignored here, see reduce_callback_with for the alternative.
Sourcepub fn reduce_callback_once<E: 'static>(
&self,
f: impl FnOnce(&mut <HANDLER as StateHandler>::Model) + 'static,
) -> Callback<E>where
<HANDLER as StateHandler>::Model: 'static,
pub fn reduce_callback_once<E: 'static>(
&self,
f: impl FnOnce(&mut <HANDLER as StateHandler>::Model) + 'static,
) -> Callback<E>where
<HANDLER as StateHandler>::Model: 'static,
Convenience method for modifying shared state directly from a CallbackOnce.
The callback event is ignored here, see reduce_callback_once_with for the alternative.
Sourcepub fn reduce_callback_with<E>(
&self,
f: impl Fn(&mut <HANDLER as StateHandler>::Model, E) + 'static,
) -> Callback<E>
pub fn reduce_callback_with<E>( &self, f: impl Fn(&mut <HANDLER as StateHandler>::Model, E) + 'static, ) -> Callback<E>
Convenience method for modifying shared state directly from a Callback.
Similar to reduce_callback but it also accepts the fired event.
Sourcepub fn reduce_callback_once_with<E: 'static>(
&self,
f: impl FnOnce(&mut <HANDLER as StateHandler>::Model, E) + 'static,
) -> Callback<E>where
<HANDLER as StateHandler>::Model: 'static,
pub fn reduce_callback_once_with<E: 'static>(
&self,
f: impl FnOnce(&mut <HANDLER as StateHandler>::Model, E) + 'static,
) -> Callback<E>where
<HANDLER as StateHandler>::Model: 'static,
Convenience method for modifying shared state directly from a CallbackOnce.
Similar to reduce_callback but it also accepts the fired event.
Trait Implementations§
Source§impl<HANDLER> Clone for StateHandle<HANDLER>where
HANDLER: StateHandler,
HandlerLink<HANDLER>: Clone,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone,
impl<HANDLER> Clone for StateHandle<HANDLER>where
HANDLER: StateHandler,
HandlerLink<HANDLER>: Clone,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone,
Source§impl<HANDLER> Default for StateHandle<HANDLER>where
HANDLER: StateHandler,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone,
impl<HANDLER> Default for StateHandle<HANDLER>where
HANDLER: StateHandler,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone,
Source§impl<HANDLER> Handle for StateHandle<HANDLER>where
HANDLER: StateHandler,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone + 'static,
impl<HANDLER> Handle for StateHandle<HANDLER>where
HANDLER: StateHandler,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone + 'static,
Source§impl<HANDLER> PartialEq for StateHandle<HANDLER>where
HANDLER: StateHandler,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone,
impl<HANDLER> PartialEq for StateHandle<HANDLER>where
HANDLER: StateHandler,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone,
Source§impl<HANDLER> Properties for StateHandle<HANDLER>where
HANDLER: StateHandler,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone + 'static,
impl<HANDLER> Properties for StateHandle<HANDLER>where
HANDLER: StateHandler,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone + 'static,
Source§impl<HANDLER> WrapperHandle for StateHandle<HANDLER>where
HANDLER: StateHandler,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone + 'static,
impl<HANDLER> WrapperHandle for StateHandle<HANDLER>where
HANDLER: StateHandler,
<HANDLER as StateHandler>::Message: Clone,
<HANDLER as StateHandler>::Output: Clone,
<HANDLER as StateHandler>::Input: Clone,
<HANDLER as StateHandler>::Model: Clone + 'static,
fn set_state(&mut self, state: Rc<<Self::Handler as StateHandler>::Model>)
fn set_link(&mut self, link: HandlerLink<Self::Handler>)
fn set_callbacks( &mut self, callback: Callback<Rc<dyn Fn(&mut <Self::Handler as StateHandler>::Model)>>, callback_once: Callback<Box<dyn FnOnce(&mut <Self::Handler as StateHandler>::Model)>>, )
Auto Trait Implementations§
impl<HANDLER> Freeze for StateHandle<HANDLER>where
<HANDLER as StateHandler>::Model: Sized,
<HANDLER as StateHandler>::Input: Sized,
<HANDLER as StateHandler>::Output: Sized,
<HANDLER as StateHandler>::Message: Sized,
impl<HANDLER> !RefUnwindSafe for StateHandle<HANDLER>
impl<HANDLER> !Send for StateHandle<HANDLER>
impl<HANDLER> !Sync for StateHandle<HANDLER>
impl<HANDLER> Unpin for StateHandle<HANDLER>where
<HANDLER as StateHandler>::Model: Sized,
<HANDLER as StateHandler>::Input: Sized,
<HANDLER as StateHandler>::Output: Sized,
<HANDLER as StateHandler>::Message: Sized,
impl<HANDLER> !UnwindSafe for StateHandle<HANDLER>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more