#命令行界面 #终端界面 #提示 #自动完成 #属性 #cli #交互式

无std terminal_cli

一个支持无std的独立库,用于命令行终端界面。具有自动完成支持,命令和属性的辅助工具以及提示实现。

4个版本

使用旧的Rust 2015

0.2.0 2018年1月19日
0.1.2 2015年9月13日
0.1.1 2015年5月18日
0.1.0 2015年4月7日

#828 in 文本处理


用于terminal_cli_termion

MIT/Apache

47KB
1.5K SLoC

Terminal CLI

需要构建交互式命令提示符,带有命令、属性和完整自动完成功能?这就是您需要的。

Build Status

Documentation

示例,仅输出(Rust的stdout


// Simple ranged integer property
let mut num1 = 1;

// Rust stdout terminal
let mut terminal = StdoutTerminal;

let options = PromptBufferOptions { echo: true, ..Default::default() };
let mut prompt = PromptBuffer::new(options);

let input_keys = [Key::Character('h' as u8), Key::Character('e' as u8), Key::Character('l' as u8),
                  Key::Character('p' as u8), Key::Newline];

for key in &input_keys {
    let p = prompt.handle_key(*key, &mut terminal, |mut m| {
        if let Some(mut ctx) = m.command("help") {
            ctx.get_terminal().print_line("Help!");
        }

        // Provides "num1/get" and "num1/set", with input validation
        if let Some(mut ctx) = m.property("num1", validate_property_min_max(1, 100)) {
            ctx.apply(&mut num1);
        }
    });

    if let PromptEvent::Break = p {
        break;
    }
}

许可证:MIT/Apache-2.0

无运行时依赖

功能