3 个不稳定版本
0.2.1 | 2022年7月21日 |
---|---|
0.2.0 | 2022年4月22日 |
0.1.0 | 2021年11月17日 |
#787 in 命令行界面
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