pub trait SimpleComponent: Sized + 'static {
type Input: Debug + 'static;
type Output: Debug + 'static;
type Init;
type Root: Debug + Clone;
type Widgets: 'static;
// Required methods
fn init_root() -> Self::Root;
fn init(
init: Self::Init,
root: Self::Root,
sender: ComponentSender<Self>,
) -> ComponentParts<Self>;
// Provided methods
fn update(&mut self, message: Self::Input, sender: ComponentSender<Self>) { ... }
fn update_cmd(
&mut self,
input: &Sender<Self::Input>,
output: Sender<Self::Output>,
) { ... }
fn update_view(
&self,
widgets: &mut Self::Widgets,
sender: ComponentSender<Self>,
) { ... }
fn shutdown(
&mut self,
widgets: &mut Self::Widgets,
output: Sender<Self::Output>,
) { ... }
}Expand description
Elm-style variant of a Component with view updates separated from input updates.
Required Associated Types§
Required Methods§
Sourcefn init(
init: Self::Init,
root: Self::Root,
sender: ComponentSender<Self>,
) -> ComponentParts<Self>
fn init( init: Self::Init, root: Self::Root, sender: ComponentSender<Self>, ) -> ComponentParts<Self>
Creates the initial model and view, docking it into the component.
Provided Methods§
Sourcefn update(&mut self, message: Self::Input, sender: ComponentSender<Self>)
fn update(&mut self, message: Self::Input, sender: ComponentSender<Self>)
Processes inputs received by the component.
Sourcefn update_cmd(
&mut self,
input: &Sender<Self::Input>,
output: Sender<Self::Output>,
)
fn update_cmd( &mut self, input: &Sender<Self::Input>, output: Sender<Self::Output>, )
Defines how the component should respond to command updates.
Sourcefn update_view(
&self,
widgets: &mut Self::Widgets,
sender: ComponentSender<Self>,
)
fn update_view( &self, widgets: &mut Self::Widgets, sender: ComponentSender<Self>, )
Updates the view after the model has been updated.
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.
Implementations on Foreign Types§
Source§impl SimpleComponent for ()
An empty, non-interactive component as a placeholder for tests.
impl SimpleComponent for ()
An empty, non-interactive component as a placeholder for tests.