arostech_cli_rust/models/
menu.rs1use inquire::Select;
2
3use super::menu_options::MenuOptions;
4
5pub struct Menu {
6 options: MenuOptions,
7 pub should_show_menu: bool
8}
9
10impl Menu {
11 pub fn new () -> Menu {
12 Menu {
13 options: MenuOptions::new(),
14 should_show_menu: true
15 }
16 }
17 pub fn show_menu(&mut self) {
18
19 let response = Select::new("Choose an action:", self.options.clone())
20 .prompt()
21 ;
22
23 match response {
24 Ok(choice) => self.should_show_menu = self.options.run(choice),
25 Err(_) => {
26 println!("Something went wrong!");
27 self.should_show_menu = false;
28 }
29 };
30 }
31}