pub trait Program: Sized {
    type Renderer: Renderer;
    type Message: Debug + Send;

    fn update(&mut self, message: Self::Message) -> Command<Self::Message>;
    fn view(&self) -> Element<'_, Self::Message, Self::Renderer>;
Expand description

The core of a user interface application following The Elm Architecture.

Required Associated Types§


type Renderer: Renderer

The graphics backend to use to draw the Program.


type Message: Debug + Send

The type of messages your Program will produce.

Required Methods§


fn update(&mut self, message: Self::Message) -> Command<Self::Message>

Handles a message and updates the state of the Program.

This is where you define your update logic. All the messages, produced by either user interactions or commands, will be handled by this method.

Any Command returned will be executed immediately in the background by shells.


fn view(&self) -> Element<'_, Self::Message, Self::Renderer>

Returns the widgets to display in the Program.

These widgets can produce messages based on user interaction.