1use matchmaker::nucleo::worker::Worker;
2use matchmaker::{Matchmaker, MatchmakerError, Result};
3
4#[tokio::main]
5async fn main() -> Result<()> {
6 let items = vec!["item1", "item2", "item3"];
7
8 let worker = Worker::new_single();
9 worker.append(items);
10 let identifier = Worker::clone_identifier;
11
12 let mm = Matchmaker::new(worker, identifier);
13
14 match mm.pick().await {
15 Ok(iter) => {
16 for s in iter {
17 println!("{s}");
18 }
19 }
20 Err(err) => {
21 if let Some(e) = err.downcast_ref::<MatchmakerError>()
22 && matches!(e, MatchmakerError::Abort(1))
23 {
24 eprintln!("cancelled");
25 } else {
26 eprintln!("Error: {err}");
27 }
28 }
29 }
30
31 Ok(())
32}