You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
740 B
Rust

6 years ago
#[macro_use]
extern crate seed;
use seed::prelude::*;
6 years ago
// Model
6 years ago
#[derive(Clone)]
6 years ago
struct Model {
pub val: i32,
}
impl Default for Model {
fn default() -> Self {
Self {
val: 0,
}
}
}
6 years ago
6 years ago
// Update
6 years ago
#[derive(Clone)]
6 years ago
enum Msg {
Increment,
}
fn update(msg: Msg, model: Model) -> Update<Model> {
6 years ago
match msg {
Msg::Increment => Render(Model {val: model.val + 1})
6 years ago
}
}
6 years ago
6 years ago
// View
fn view(_state: seed::App<Msg, Model>, model: &Model) -> El<Msg> {
button![
simple_ev("click", Msg::Increment),
format!("Hello, World × {}", model.val)
]
6 years ago
}
#[wasm_bindgen]
6 years ago
pub fn render() {
seed::App::build(Model::default(), update, view)
.finish()
.run();
6 years ago
}