full/
full.rs

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}