#menu #terminal #console #cli

menu_rs

简单的命令行菜单

3 个不稳定版本

0.3.1 2023年11月5日
0.3.0 2023年2月9日
0.2.2 2022年12月8日
0.1.0 2022年12月7日

命令行界面 中排名第 247

每月下载量 36 次

Apache-2.0 许可

11KB
128

menu_rs

这是一个 Rust 库,允许创建简单且可交互的命令行菜单。

使用非常简单,您只需创建一个菜单,添加您想要的功能选项和对应的动作,然后就可以使用了!您可以使用箭头键移动到选项,按 ENTER 选择选项,按 ESC 退出菜单。

menu_example

示例

use menu_rs::{Menu, MenuOption};

fn main() {
    fn action_1() {
        println!("Option 1 called!");
    }
    fn action_2() {}
    fn action_3() {}
    fn action_4() {}

    let menu = Menu::new(vec![
        MenuOption::new("Option 1", action_1).hint("Hint for option 1"),
        MenuOption::new("Option 2", action_2),
        MenuOption::new("Option 3", action_3),
        MenuOption::new("Option 4", action_4),
    ]);

    menu.show();
}

lib.rs:

menu_rs 是一个 Rust 库,允许创建简单且可交互的命令行菜单。

使用非常简单,您只需创建一个菜单,添加您想要的功能选项和对应的动作,然后就可以使用了!您可以使用箭头键移动到选项,按 ENTER 选择选项,按 ESC 退出菜单。

示例

use menu_rs::{Menu, MenuOption};

let my_variable: u32 = 157;

fn action_1() {
    println!("action 1")
}
fn action_2(val: u32) {
    println!("action 2 with number {}", val)
}
fn action_3(msg: &str, val: f32) {
    println!("action 3 with string {} and float {}", msg, val)
}
fn action_4() {
    println!("action 4")
}

let menu = Menu::new(vec![
    MenuOption::new("Option 1", action_1).hint("Hint for option 1"),
    MenuOption::new("Option 2", || action_2(42)),
    MenuOption::new("Option 3", || action_3("example", 3.14)),
    MenuOption::new("Option 4", action_4),
    MenuOption::new("Option 5", move || action_2(my_variable)),
]);

menu.show();

依赖关系

~0.4–8.5MB
~47K SLoC