pick_1/
pick_1.rs

1use matchmaker::nucleo::{Indexed, Render, Worker};
2use matchmaker::{MatchError, MatchResultExt, Matchmaker, Result, SSS, Selector};
3
4pub async fn mm_get<T: SSS + Render + Clone>(
5    items: impl IntoIterator<Item = T>,
6) -> Result<T, MatchError> {
7    let worker = Worker::new_single_column();
8    worker.append(items);
9    let selector = Selector::new(Indexed::identifier);
10    let mm = Matchmaker::new(worker, selector);
11
12    mm.pick_default().await.first()
13}
14
15#[tokio::main]
16async fn main() -> Result<()> {
17    let items = vec!["item1", "item2", "item3"];
18    println!("{}", mm_get(items).await?);
19
20    Ok(())
21}