9个版本 (4个重大更新)
0.5.0 | 2022年9月1日 |
---|---|
0.4.1 | 2022年7月7日 |
0.4.0 | 2022年6月4日 |
0.3.0 | 2022年1月18日 |
0.1.1 | 2021年7月17日 |
#124 in 命令行界面
17,495 每月下载量
在 45 个crate中使用 (40个直接使用)
475KB
10K SLoC
Requestty
requestty
(request-tty) 是一个易于使用的交互式命令行提示集合,灵感来源于 Inquirer.js.
-
易于使用 - 建造者API和宏允许您轻松配置和使用内置提示。
-
可扩展 - 使用配套的UI渲染库轻松创建和使用自定义提示。
-
灵活 - 所有提示都可以单独使用或连接在一起。
-
动态 - 您可以根据先前的问题动态决定应提出哪些问题。
-
验证 - 您可以使用任何提示验证用户输入。
-
示例 - 每个提示都附有示例以及更多示例,用于更复杂的流程
使用方法
将以下内容添加到您的 Cargo.toml
[dependencies]
requestty = "0.4.1"
提出问题
let question = requestty::Question::expand("overwrite")
.message("Conflict on `file.rs`")
.choices(vec![
('y', "Overwrite"),
('a', "Overwrite this one and all next"),
('d', "Show diff"),
])
.default_separator()
.choice('x', "Abort")
.build();
println!("{:#?}", requestty::prompt_one(question));
内置提示
有11个内置提示
-
输入
接收用户输入并返回
String
的提示。 -
密码
接收用户输入并隐藏的提示。
-
编辑器
在临时文件上启动用户首选编辑器的提示。
-
确认
返回
true
或false
的提示。 -
整型
接收
i64
作为输入的提示。 -
浮点数
接收
f64
作为输入的提示。 -
扩展
允许用户通过键选择列表中的选项的提示。
-
选择
允许用户从选项列表中进行选择的提示
-
RawSelect
允许用户从带有索引的选项列表中进行选择的提示
-
MultiSelect
允许用户从选项列表中选择多个项目的提示
-
OrderSelect
允许用户组织选项列表的提示。
可选功能
-
宏
:启用此功能后,您可以使用questions
和prompt_module
宏。 -
smallvec
(默认):启用此功能后,将使用SmallVec
而不是Vec
进行自动补全。这允许内联单个补全。 -
crossterm
(默认):启用此功能后,将使用crossterm
库进行终端交互,例如绘图和接收事件。 -
termion
:启用此功能后,将使用termion
库进行终端交互,例如绘图和接收事件。
支持的最小Rust版本(MSRV)
支持的最小Rust版本(根据cargo-msrv)是1.56.1
依赖项
~3–12MB
~133K SLoC