#用户输入 #控制台 #用户界面 #文本用户界面 #终端

interactor

一个用于简单(通常为命令行)用户交互的库

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

Download history 131/week @ 2024-03-11 163/week @ 2024-03-18 254/week @ 2024-03-25 291/week @ 2024-04-01 125/week @ 2024-04-08 144/week @ 2024-04-15 170/week @ 2024-04-22 164/week @ 2024-04-29 170/week @ 2024-05-06 140/week @ 2024-05-13 170/week @ 2024-05-20 126/week @ 2024-05-27 119/week @ 2024-06-03 168/week @ 2024-06-10 151/week @ 2024-06-17 148/week @ 2024-06-24

每月下载量 591
用于 48 Crates(直接使用 2 个)

无许可证

10KB
156

crates.io API Docs unlicense

interactor

一个用于简单(通常为命令行)用户交互的 Rust 库。

  • 从控制台读取输入,每个字节都有一个回调(例如,用于显示密码的 colorhash256
  • 使用外部菜单程序(通常为模糊搜索器)或内置简单菜单从列表中选择一个项目
  • 使用上面的“从列表中选择项目”功能选择一个文件

菜单程序?

一个接受换行符分隔的项列表的 stdin 的程序,向用户展示一个 UI(如果它是 CLI,则直接在 /dev/tty 上;也可以是 GUI),并将所选项目输出到 stdout

您应该允许应用程序的用户选择他们自己的首选工具作为配置选项。
我建议使用 $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