Skip to main content

basic/
basic.rs

1use matchmaker::nucleo::{Indexed, Worker};
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) => match err {
18            MatchError::Abort(1) => {
19                eprintln!("cancelled");
20            }
21            _ => {
22                eprintln!("Error: {err}");
23            }
24        },
25    }
26
27    Ok(())
28}