autocomplete/
autocomplete.rs1use quickmatch::Matcher;
2use std::io::{self, Write};
3
4fn main() {
5 println!("=== QuickMatch Autocomplete Demo ===\n");
6
7 let products = vec![
8 "Sony WH-1000XM5 Headphones",
15 ]
25 .into_iter()
26 .map(|s| s.to_lowercase())
27 .collect::<Vec<_>>();
28
29 let products_ref = products.iter().map(|s| s.as_str()).collect::<Vec<_>>();
30
31 let matcher = Matcher::new(&products_ref);
32
33 println!("Type to search (press Ctrl+C to exit):");
34 println!("Try: 'apple', 'pro', 'laptop', 'headphones', etc.\n");
35
36 loop {
37 print!("> ");
38 io::stdout().flush().unwrap();
39
40 let mut input = String::new();
41 io::stdin().read_line(&mut input).unwrap();
42 let query = input.trim();
43
44 if query.is_empty() {
45 continue;
46 }
47
48 let results = matcher.matches(query, usize::MAX);
49
50 if results.is_empty() {
51 println!(" No matches found\n");
52 } else {
53 println!(" {} result(s):", results.len());
54 for result in results {
55 println!(" • {}", result);
56 }
57 println!();
58 }
59 }
60}