Skip to main content

less/
less.rs

1use may_clack::{error::ClackError, intro, multi_select, outro, select};
2use owo_colors::OwoColorize;
3
4/// Activating "less" mode activates a pager.
5///
6/// With the value given to the `.less(val: i32)` function,
7/// you can decide the amount of options per page.
8fn main() -> Result<(), ClackError> {
9	println!();
10	intro!("{}", " less ".reversed());
11
12	let select_less = select("less")
13		.option("val 1", "value 1")
14		.option("val 2", "value 2")
15		.option_hint("val 3", "value 3", "hint")
16		.option("val 4", "value 4")
17		.option("val 5", "value 5")
18		.less_amt(3)
19		.interact()?;
20
21	let multi_less_noop = multi_select("less")
22		.option("val 1", "value 1")
23		.option("val 2", "value 2")
24		.option_hint("val 3", "value 3", "hint")
25		.less_amt(5)
26		.interact()?;
27
28	let multi_less = multi_select("less")
29		.option("val 1", "value 1")
30		.option("val 2", "value 2")
31		.option_hint("val 3", "value 3", "hint")
32		.option("val 4", "value 4")
33		.option("val 5", "value 5")
34		.less()
35		.interact()?;
36
37	let mut page_up_down = select("page up / down");
38	page_up_down.less_max(25);
39
40	for i in 0..100 {
41		page_up_down.option(i, i);
42	}
43
44	let page_up_down = page_up_down.interact()?;
45
46	outro!();
47
48	println!("page_up_down {page_up_down:?}");
49	println!("select_less {select_less:?}");
50	println!("multi_less_noop {multi_less_noop:?}");
51	println!("multi_less {multi_less:?}");
52
53	Ok(())
54}