basic/
basic.rs

1use matchmaker::nucleo::{Worker, Indexed};
2use matchmaker::{MatchError, Matchmaker, Result, Selector};
3
4#[tokio::main]
5async fn main() -> Result<()> {
6    let items = vec!["item1", "item2", "item3"];
7
8    let worker = Worker::new_single_column();
9    worker.append(items);
10    let selector = Selector::new(Indexed::identifier);
11    let mm = Matchmaker::new(worker, selector);
12
13    match mm.pick_default().await {
14        Ok(v) => {
15            println!("{}", v[0]);
16        }
17        Err(err) => {
18            match err {
19                MatchError::Abort(1) => {
20                    eprintln!("cancelled");
21                }
22                _ => {
23                    eprintln!("Error: {err}");
24                }
25            }
26        }
27    }
28
29    Ok(())
30}