EZMenu
Fast designing menus for your Rust CLI programs.
This crate provides a derive(Menu) procedural macro to easily build menus.
It includes type-checking from the user input, and a formatting customization.
Documentation
You can find all the crate documentation on Docs.rs. You can also check the examples to learn with a practical way.
Example
Here is an example of how to use it:
use ;
To display the menu, you instantiate the struct by calling its from_menu method:
let MyMenu = from_menu;
println!;
This sample code prints the standard menu like above:
- author: Ahmad
- Give a nonzero number: 0
yo respect me plz :'(
values provided: author=Ahmad, number=0
Custom I/O types
If you are not using std::io::Stdin and std::io::Stdout types, you can provide your own
types by enabling the custom_io feature in your Cargo.toml file:
[]
= { = "0.2.0", = ["custom_io"] }
Then you can instantiate your struct with:
use stdout;
let input = b"Ahmad\n1000\n" as &;
let MyMenu = from_io;
WIP
This project is not finished yet, and is at its first release. You can check the EZMenu project to see all the next features.