3 个版本
0.2.10 | 2022年3月15日 |
---|---|
0.2.9 | 2022年3月3日 |
0.2.7 | 2022年2月25日 |
#554 in 命令行界面
被 ezmenu 使用
77KB
1K SLoC
EZMenuLib
快速为您的 Rust CLI 程序设计菜单。
注意:此库尚未完全稳定。版本之间可能会有许多变化。我仍在寻找一个可持续的库设计。
此包提供包含结构体和特质的库,以轻松构建菜单。它包括用户输入的类型检查,以及格式化自定义。
如果您除了此包外还使用 structopt 或 clap 包,此包非常有用,因此您可以安全地获取匹配项,并在之后构建自己的菜单。
它也可以用作模式选择,例如在游戏中。
注意
如果您想使用 derive(Menu)
宏,您必须使用 ezmenu 包。然而,此包可能包含 ezmenu 包中不可用的功能。
示例
以下是如何使用此库的示例
use ezmenulib::prelude::*;
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
let mut my_menu = ValueMenu::from([
Field::Value(ValueField::from("Give your name")),
Field::Value(ValueField::from("Give a number")),
Field::Select(SelectMenu::from([
SelectField::from("0"),
SelectField::from("1"),
SelectField::from("2"),
])
.title(SelectTitle::from("Select a number"))),
]);
let name: String = my_menu.next_output()?;
let number: i32 = my_menu.next_output()?;
let amount: u8 = my_menu.next_output()?;
println!("hello {}, you entered {} and you selected {}.", name, number, amount);
}
此示例代码打印出上述标准菜单
Hello there!
--> Give your name
>> Ahmad
--> Give a number
>> 1000
--> Select a number:
1 - 0
2 - 1
3 - 2
>> 2
hello Ahmad, you entered 1000 and you selected 2.
文档
您可以在 Docs.rs 上找到所有包文档。您还可以查看 示例 以通过实践学习。
进行中
此项目仍在开发中。您可以通过查看 EZMenu 项目 来查看我的待办事项列表 :D
依赖
~0–280KB