pub trait StateHandler: Sized {
type Model: Clone;
type Message;
type Input;
type Output;
// Required methods
fn new(_link: HandlerLink<Self>) -> Self;
fn state(&mut self) -> &mut Rc<Self::Model>;
// Provided methods
fn changed(&mut self) { ... }
fn update(&mut self, _msg: Self::Message) -> Changed { ... }
fn handle_input(&mut self, msg: Self::Input, _who: HandlerId) -> Changed { ... }
}Expand description
Determines how state should be created, modified, and shared.
Required Associated Types§
Required Methods§
Sourcefn new(_link: HandlerLink<Self>) -> Self
fn new(_link: HandlerLink<Self>) -> Self
Create new state.
Provided Methods§
fn handle_input(&mut self, msg: Self::Input, _who: HandlerId) -> Changed
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.