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

    // Required methods
    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§

source

type Renderer: Renderer

The graphics backend to use to draw the Program.

source

type Message: Debug + Send

The type of messages your Program will produce.

Required Methods§

source

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.

source

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.

Implementors§