option_builder/
option_builder.rs1extern crate skim;
2use skim::prelude::*;
3use std::io::Cursor;
4
5pub fn main() {
6 let options = SkimOptionsBuilder::default()
7 .height(Some("50%"))
8 .multi(true)
9 .build()
10 .unwrap();
11 let item_reader = SkimItemReader::default();
12
13 let input = "aaaaa\nbbbb\nccc";
16 let (items, opt_ingest_handle) = item_reader.of_bufread(Box::new(Cursor::new(input)));
17 let selected_items = Skim::run_with(&options, Some(items))
18 .map(|out| out.selected_items)
19 .unwrap_or_else(Vec::new);
20
21 for item in selected_items.iter() {
22 println!("{}", item.output());
23 }
24
25 if let Some(handle) = opt_ingest_handle {
26 let _ = handle.join();
27 }
28
29 let input = "11111\n22222\n333333333";
32 let (items, opt_ingest_handle) = item_reader.of_bufread(Box::new(Cursor::new(input)));
33 let selected_items = Skim::run_with(&options, Some(items))
34 .map(|out| out.selected_items)
35 .unwrap_or_else(Vec::new);
36
37 for item in selected_items.iter() {
38 println!("{}", item.output());
39 }
40
41 if let Some(handle) = opt_ingest_handle {
42 let _ = handle.join();
43 }
44}