1extern crate skim;
2use skim::prelude::*;
3
4struct BasicSelector {
5 pub pat: String,
6}
7
8impl Selector for BasicSelector {
9 fn should_select(&self, _index: usize, item: &dyn SkimItem) -> bool {
10 item.text().contains(&self.pat)
11 }
12}
13
14pub fn main() {
15 let selector = BasicSelector {
16 pat: String::from("examples"),
17 };
18 let options = SkimOptionsBuilder::default()
19 .multi(true)
20 .selector(Some(Rc::from(selector)))
21 .query(Some(String::from("skim/")))
22 .build()
23 .unwrap();
24
25 let selected_items = Skim::run_with(options, None)
26 .map(|out| out.selected_items)
27 .unwrap_or_default();
28
29 for item in selected_items.iter() {
30 println!("{}", item.output());
31 }
32}