1use may_clack::{
2 cancel, confirm, error::ClackError, info, input, intro, multi_input, multi_select, outro,
3 select,
4};
5use owo_colors::OwoColorize;
6
7fn main() -> Result<(), ClackError> {
8 println!();
9 intro!(" full ".reversed());
10
11 info!("visit the documentation at https://docs.rs/may-clack");
12
13 let do_input = input("input")
14 .placeholder("placeholder")
15 .cancel(do_cancel)
16 .required()?;
17 let do_multi_input = multi_input("multi input")
18 .max(4)
19 .cancel(do_cancel)
20 .interact()?;
21 let do_confirm = confirm("confirm")
22 .prompts("true", "false")
23 .cancel(do_cancel)
24 .interact()?;
25 let do_multi_select = multi_select("multi select")
26 .option("opt1", "option 1")
27 .option("opt2", "option 2")
28 .option_hint("opt3", "option 3", "hint")
29 .cancel(do_cancel)
30 .interact()?;
31 let do_select = select("select")
32 .option("val1", "value 1")
33 .option("val2", "value 2")
34 .option_hint("val 3", "value 3", "hint")
35 .cancel(do_cancel)
36 .interact()?;
37
38 outro!();
39
40 println!("input {do_input:?}");
41 println!("confirm {do_confirm:?}");
42 println!("multi_input {do_multi_input:?}");
43 println!("multi_select {do_multi_select:?}");
44 println!("select {do_select:?}");
45
46 Ok(())
47}
48
49fn do_cancel() {
50 cancel!("demo cancelled");
51 panic!("demo cancelled");
52}