use xz_search::*;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut router = SearchRouter::new();
let mut mock = MockSearchEngine::new("demo");
router.register_engine(Box::new(mock));
let result = router
.aggregated_search(
"Rust 2024 edition new features",
&SearchConfig { max_results: 5, engines: vec!["demo".into()], ..Default::default() },
&SearchOptions::default(),
)
.await?;
println!("Search results ({}ms):", result.latency_ms);
for (i, item) in result.items.iter().enumerate() {
println!(" {}. [{}] {} - {}", i + 1, item.source, item.title, item.url);
println!(" {}", item.snippet);
}
println!("Total: {} results, cached: {}", result.total_results, result.cached);
Ok(())
}