RUI:受 SwiftUI启发的实验性声明式Rust UI库


受 SwiftUI 启发的实验性 Rust UI 库。rui 是即时模式(没有保留的视图树),GPU 渲染,并且比其他即时模式 UI 具有更丰富的布局选项。

use rui::*;

[code]fn main() {
    rui(state(1, |count| {
        vstack! {
            text(&format!("{:?}", count.get()))
                .padding(Auto);
            button(
"increment", move || {
                let value = count.get();
                count.set(value + 1);
            })
                .padding(Auto)
        }
    }));
}
[/code]
显示效果:

声明式GUI 编程始终是一种胜利,灵活、高效且富有表现力。
声明性领域特定语言的问题往往是它们最终会添加越来越多的完整图灵完备语言的功能,最终你会陷入混乱。如果你能避免这种情况,那很好,如果不能,你最好避免声明性中间步骤,从一开始就设计一门成熟的语言,甚至重用现有的精心设计的语言。
好的例子:
  • Apache config files
  • nginx config files
  • exim config files
  • CMake