Skip to main content

web_search/
lib.rs

1//! Web Search - Multi-provider web search aggregator
2//!
3//! Deterministic result merging is always available. Network providers, the
4//! search engine, CLI, and HTTP service are enabled by the default `server`
5//! feature.
6//!
7//! # Example
8//!
9//! ```
10//! use std::collections::HashMap;
11//! use web_search::{merger::merge_results, MergeOptions, SearchResult};
12//!
13//! let results = HashMap::<String, Vec<SearchResult>>::new();
14//! assert!(merge_results(&results, &MergeOptions::new()).is_empty());
15//! ```
16
17#[cfg(feature = "server")]
18pub mod error;
19pub mod merger;
20#[cfg(feature = "server")]
21pub mod providers;
22#[cfg(feature = "server")]
23pub mod search;
24#[cfg(feature = "server")]
25pub mod transport;
26mod types;
27
28#[cfg(feature = "server")]
29pub use error::SearchError;
30pub use merger::{MergeOptions, MergeStrategy};
31#[cfg(feature = "server")]
32pub use providers::{
33    get_default_provider_ids, get_provider_ids, get_registry, is_known_category, RegistryEntry,
34    SearchOptions, CATEGORIES,
35};
36#[cfg(feature = "server")]
37pub use search::{
38    DetailedSearchResult, ProviderError, ProviderOutcome, ProviderOutcomeStatus, WebSearchConfig,
39    WebSearchEngine,
40};
41#[cfg(feature = "server")]
42pub use transport::{ReqwestTransport, SearchTransport, TransportRequest, TransportResponse};
43pub use types::SearchResult;