4 个版本
0.1.3 | 2022年10月1日 |
---|---|
0.1.2 | 2022年8月5日 |
0.1.1 | 2016年2月1日 |
0.1.0 | 2015年11月12日 |
在 命令行界面 中排名第 369
每月下载量 591
用于 48 个 Crates(直接使用 2 个)
10KB
156 行
interactor
一个用于简单(通常为命令行)用户交互的 Rust 库。
- 从控制台读取输入,每个字节都有一个回调(例如,用于显示密码的 colorhash256)
- 使用外部菜单程序(通常为模糊搜索器)或内置简单菜单从列表中选择一个项目
- 使用上面的“从列表中选择项目”功能选择一个文件
菜单程序?
一个接受换行符分隔的项列表的 stdin
的程序,向用户展示一个 UI(如果它是 CLI,则直接在 /dev/tty
上;也可以是 GUI),并将所选项目输出到 stdout
。
- fzy (C)
- pick (C)
- fzf (Go)
- peco (Go)
- percol (Python)
- icepick (Rust)
- heatseeker (Rust)
- selecta (Ruby)
- hf (Haskell)
- dmenu (C, X11 GUI)
- rofi (C, X11 GUI)
您应该允许应用程序的用户选择他们自己的首选工具作为配置选项。
我建议使用 $MENU
环境变量,类似于 $EDITOR
,作为一个查找用户偏好的地方。
用法
extern crate interactor;
use std::io::Write;
use interactor::*;
fn main() {
let read_result = read_from_tty(|buf, b, tty| {
tty.write(&format!("({:?} | {})\n", buf, b).into_bytes());
}, false, false).unwrap();
println!("Read: {}", String::from_utf8(read_result).unwrap());
let chosen_ext = pick_from_list(default_menu_cmd().as_mut(), &["first", "second"], "Selection: ").unwrap();
println!("Congratulations, you chose '{}'!!", chosen_ext);
}
许可证
这是一款免费且无负担的软件,已释放到公共领域。
有关更多信息,请参阅 UNLICENSE
文件或 unlicense.org。
依赖项
~120KB