arostech_cli_rust/models/
menu.rs

1use 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}