25个版本 (9个破坏性版本)

0.10.0-alpha.52024年1月8日
0.9.4 2023年12月16日
0.8.0 2023年12月15日
0.6.0-alpha.32023年11月16日

#411 in GUI

Download history 1/week @ 2024-03-10 80/week @ 2024-03-31 37/week @ 2024-04-14 370/week @ 2024-04-21

每月240次下载

MIT/Apache

26KB
687

Viewbuilder

Crates.io version docs.rs docs CI status

Rust的跨平台用户界面框架。

Viewbuilder 是一个模块化GUI库,可以作为完整的框架使用,也可以使用单独的部分。

use viewbuilder::{
    view,
    web::{self, html, Web},
    ControlFlow, Model, View,
};

enum Message {
    Increment,
    Decrement,
}

#[derive(Default)]
struct App {
    count: i32,
}

impl Model<Message> for App {
    fn handle(&mut self, msg: Message) -> ControlFlow {
        match msg {
            Message::Decrement => self.count -= 1,
            Message::Increment => self.count += 1,
        }
        ControlFlow::Rebuild
    }
}

fn view(model: &App) -> impl View<Web, Message> {
    (
        format!("High five count: {}", model.count),
        view::once(html::button(
            html::on_click(|| Message::Increment),
            "Up high!",
        )),
        view::once(html::button(
            html::on_click(|| Message::Decrement),
            "Down low!",
        )),
    )
}

fn main() {
    web::run(App::default(), view)
}

入门

使用以下命令安装很简单

cargo add viewbuilder --features full

依赖

~0–2.1MB
~41K SLoC