5 releases
0.2.5 | Feb 17, 2022 |
---|---|
0.2.4 | Feb 16, 2022 |
0.2.3 | Feb 13, 2022 |
0.2.0 | Feb 13, 2022 |
0.1.0 | Feb 1, 2022 |
#94 in #menu
24KB
570 lines
EZMenu
Fast designing menus for your Rust CLI programs with a simple derive.
This crates provides many procedural macros to easily build menus.
It uses the ezmenulib
library crate in its expansion.
Example
Here is an example of how to use the derive(Menu)
macro
(it takes the same example as the documentation of the ezmenu
library):
use ezmenu::Menu;
#[derive(Menu)]
#[menu(title = "Hello there!")]
struct MyMenu {
#[menu(msg = "Give your name")]
name: String,
#[menu(msg = "Give a number")]
number: i32,
}
fn main() {
let MyMenu { name, number } = MyMenu::from_menu();
println!("values provided: name={}, number={}", name, number);
}
This sample code prints the standard menu like above:
Hello there!
* Give your name: Ahmad
* Give a number: 1000
values provided: name=Ahmad, number=1000
Documentation
You can find all the crate documentation on Docs.rs. You can also check the make-license program example to learn with a practical way.
WIP
This project is still in development. You can check the EZMenu project to look at my todolist :D
Dependencies
~1.5MB
~38K SLoC