run

Function run 

Source
pub fn run(menu: &TerminalMenu)
Expand description

Activate the menu and wait for it to exit.

ยงExample

use terminal_menu::{TerminalMenu, menu, run};
let my_menu = menu(vec![
    list("galadriel", vec!["frodo", "bilbo"])
    numeric("boo", 4.67, Some(3.0), None, None)
]);
run(&my_menu);
Examples found in repository?
examples/cancel.rs (line 11)
5fn main() {
6    use terminal_menu::{menu, label, button, run, mut_menu};
7    let menu = menu(vec![
8        label("press the button or hit 'q' or esc!"),
9        button("button")
10    ]);
11    run(&menu);
12
13    // true if exited with 'q' or esc, false if button was pressed
14    println!("{}", mut_menu(&menu).canceled());
15}
More examples
Hide additional examples
examples/long.rs (line 13)
5fn main() {
6    use terminal_menu::{menu, button, run, mut_menu};
7    let menu = menu(
8
9        // create buttons representing numbers from 1 to 100
10        (1..100).map(|n| button(format!("{}", n))).collect()
11
12    );
13    run(&menu);
14    if mut_menu(&menu).canceled() {
15        println!("Canceled!");
16        return;
17    }
18    println!("{}", mut_menu(&menu).selected_item_name());
19}
examples/colors.rs (line 21)
5fn main() {
6    use terminal_menu::*;
7
8    // see the crossterm crate for all the color options
9    use crossterm::style::Color;
10
11    let menu = menu(vec![
12
13        label("COLOR!"),
14        label("Red").colorize(Color::Red),
15        label("Green").colorize(Color::Green),
16        label("Blue").colorize(Color::Blue),
17
18        // selected item is always cyan
19        button("Cyan")
20    ]);
21    run(&menu);
22}
examples/readme.rs (line 16)
1fn main() {
2    use terminal_menu::{run, menu, label, scroll, list, string, password, numeric, submenu, back_button};
3    let menu = menu(vec![
4        label("--------------"),
5        label("MY lovely menu!"),
6        label("usage: tinker around"),
7        label("---------------"),
8        scroll("Selection", vec!["First Option", "Second Option", "Third Option"]),
9        list("Do Something", vec!["Yes", "No"]),
10        string("Your Name", "Samuel", false),
11        password("Your Password", "pass", false),
12        numeric("Numeric", 5.25, None, None, None),
13        submenu("Submenu", vec![back_button("Back")]),
14        back_button("Exit"),
15    ]);
16    run(&menu);
17}
examples/simple.rs (line 25)
5fn main() {
6    use terminal_menu::{menu, label, button, run, mut_menu};
7    let menu = menu(vec![
8
9        // label:
10        //  not selectable, useful as a title, separator, etc...
11        label("----------------------"),
12        label("terminal-menu"),
13        label("use wasd or arrow keys"),
14        label("enter to select"),
15        label("'q' or esc to exit"),
16        label("-----------------------"),
17
18        // button:
19        //  exit the menu
20        button("Alice"),
21        button("Bob"),
22        button("Charlie")
23
24    ]);
25    run(&menu);
26
27    // if the menu was exited
28    if (mut_menu(&menu).canceled()) {
29        println!("Canceled!");
30        return;
31    }
32
33    // you can get the selected buttons name like so:
34    println!("Selected: {}", mut_menu(&menu).selected_item_name());
35}
examples/selections.rs (line 27)
5fn main() {
6    use terminal_menu::{menu, label, button, list, scroll, run, mut_menu};
7    let menu = menu(vec![
8        label("lists and scrolls"),
9
10        // with list and scroll you can select a value from a group of values
11        // you can change the selected value with arrow keys, wasd, or enter
12
13        // use arrow keys or wasd
14        // enter to select
15
16        // list:
17        //  show all values
18        //  surround the selected value with brackets
19        list("li", vec!["Alice", "Bob", "Charlie"]),
20
21        // scroll:
22        //  show only the selected item
23        scroll("sc", vec!["Alice", "Bob", "Charlie"]),
24
25        button("exit")
26    ]);
27    run(&menu);
28    {
29        let mm = mut_menu(&menu);
30        if mm.canceled() {
31            println!("Canceled!");
32            return;
33        }
34        println!("{}", mm.selection_value("li"));
35        println!("{}", mm.selection_value("sc"));
36    }
37}