basic/
basic.rs

1use matchmaker::nucleo::{Worker, Indexed};
2use matchmaker::{Matchmaker, MatchError, Result};
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 identifier = Indexed::identifier;
11
12    let mm = Matchmaker::new(worker, identifier);
13
14    match mm.pick().await {
15        Ok(v) => {
16            println!("{}", v[0]);
17        }
18        Err(err) => {
19            match err {
20                MatchError::Abort(1) => {
21                    eprintln!("cancelled");
22                }
23                _ => {
24                    eprintln!("Error: {err}");
25                }
26            }
27        }
28    }
29
30    Ok(())
31}