arostech_cli_rust/models/
menu.rsuse inquire::Select;
use super::menu_options::MenuOptions;
pub struct Menu {
options: MenuOptions,
pub should_show_menu: bool
}
impl Menu {
pub fn new () -> Menu {
Menu {
options: MenuOptions::new(),
should_show_menu: true
}
}
pub fn show_menu(&mut self) {
let response = Select::new("Choose an action:", self.options.clone())
.prompt()
;
match response {
Ok(choice) => self.should_show_menu = self.options.run(choice),
Err(_) => {
println!("Something went wrong!");
self.should_show_menu = false;
}
};
}
}