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).disabled();
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}