use iced::{ widget::{button, column, text}, Element, Sandbox, Settings, }; pub fn main() -> iced::Result { Counter::run(Settings::default()) } #[derive(Default)] struct Counter { value: i32, } impl Sandbox for Counter { type Message = Message; fn new() -> Self { Self::default() } fn title(&self) -> String { String::from("volute") } fn update(&mut self, message: Message) { match message { Message::IncrementPressed => { self.value += 1; } Message::DecrementPressed => { self.value -= 1; } } } fn view(&self) -> Element { column![ button("+").on_press(Message::IncrementPressed), text(self.value).size(50), button("-").on_press(Message::DecrementPressed), ] .into() } } #[derive(Debug, Clone, Copy)] pub enum Message { IncrementPressed, DecrementPressed, }