3 个不稳定版本

0.2.1 2022年7月21日
0.2.0 2022年4月22日
0.1.0 2021年11月17日

#787 in 命令行界面

LGPL-3.0 或更新版本

30KB
761

Thuja

用于构建文本用户界面的 Elm 启发库。

Thuja 严重依赖于 tui 包,本质上只是对其的(有意见的)封装。Thuja 使用 crossterm 作为终端后端。

Thuja 是一个实验性库,其 API 很可能会发生变化

快速开始

最简单的应用程序如下所示

use thuja::{components::list::List, Component, Thuja};

fn main() {
    let list = List::new(vec!["one", "two", "three"]);
    Thuja::new(list).run();
}

此代码将显示包含三个元素的列表,第一个被选中。您可以使用箭头键在元素之间切换。
很简单,对吧?

项目的目标是使组件易于重用和组合。

下一个示例将显示相同的列表,但带有图例状态栏和 Ctrl+C 处理

use thuja::{components::{ctrlc::{CtrlCHandler,CtrlCMsg},legend::Legend,list::List},Thuja};

fn main() {
    let list = List::new(vec!["one", "two", "three"]);
    let ctrlc = CtrlCHandler::new(list, "Quit");
    let legend = Legend::new(ctrlc);
    Thuja::new(legend).with_exit_msg(Some(CtrlCMsg::Exit)).run();
}

有关更多信息,请参阅 文档

为什么叫 "thuja" 呢?

正如所说,它是受 Elm 启发而设计的,并且名称与 "TUI"(文本用户界面)一致。明白了吗?

依赖关系

~3–11MB
~106K SLoC