foodshare_search/lib.rs
1//! High-performance fuzzy search for FoodShare.
2//!
3//! This crate provides:
4//! - Multi-level relevance scoring
5//! - Levenshtein edit distance
6//! - Unicode-aware tokenization
7//! - Thread-safe caching
8
9mod relevance;
10mod fuzzy;
11mod error;
12
13#[cfg(feature = "wasm")]
14mod wasm;
15
16pub use relevance::{calculate_relevance, RelevanceScore};
17pub use fuzzy::{fuzzy_match, levenshtein_distance};
18pub use error::{SearchError, Result};
19
20/// Search result with relevance score.
21#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
22pub struct SearchResult<T> {
23 /// The matched item
24 pub item: T,
25 /// Relevance score (higher is better)
26 pub score: u32,
27}