RUI:受 SwiftUI啟發的實驗性宣告式Rust UI庫

banq發表於2022-03-02

受 SwiftUI 啟發的實驗性 Rust UI 庫。rui 是即時模式(沒有保留的檢視樹),GPU 渲染,並且比其他即時模式 UI 具有更豐富的佈局選項。

use rui::*;

<p>[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]

顯示效果:

RUI:受 SwiftUI啟發的實驗性宣告式Rust UI庫

宣告式GUI 程式設計始終是一種勝利,靈活、高效且富有表現力。

宣告性領域特定語言的問題往往是它們最終會新增越來越多的完整圖靈完備語言的功能,最終你會陷入混亂。如果你能避免這種情況,那很好,如果不能,你最好避免宣告性中間步驟,從一開始就設計一門成熟的語言,甚至重用現有的精心設計的語言。

好的例子:

  • Apache config files
  • nginx config files
  • exim config files
  • CMake

 

相關文章