pub trait SimpleComponent: Sized + 'static {
    type Input: Debug + 'static;
    type Output: Debug + 'static;
    type Init;
    type Root: Debug + Clone;
    type Widgets: 'static;

    fn init_root() -> Self::Root;
    fn init(
        init: Self::Init,
        root: &Self::Root,
        sender: ComponentSender<Self>
    ) -> ComponentParts<Self>; 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§

The message type that the component accepts as inputs.

The message type that the component provides as outputs.

The parameter used to initialize the component.

The widget that was constructed by the component.

The type that’s used for storing widgets created for this component.

Required Methods§

Initializes the root widget

Creates the initial model and view, docking it into the component.

Provided Methods§

Processes inputs received by the component.

Defines how the component should respond to command updates.

Updates the view after the model has been updated.

Last method called before a component is shut down.

Implementations on Foreign Types§

An empty, non-interactive component as a placeholder for tests.

Implementors§