# 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`](https://docs.rs/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): ```rust 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: ```text 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](https://docs.rs/ezmenu). You can also check the [make-license program example](example) to learn with a practical way. ## WIP This project is still in development. You can check the [EZMenu project](https://github.com/users/ahbalbk/projects/4) to look at my todolist :D