1#[cfg(feature = "benchmark_api")]
7pub mod benchmarks;
8mod config;
9mod db;
10mod error;
11mod geoname;
12mod metrics;
13mod provider;
14mod query;
15mod rs;
16mod schema;
17mod store;
18mod suggestion;
19#[cfg(test)]
20mod testing;
21pub mod util;
22mod weather;
23mod yelp;
24
25pub use config::{SuggestGlobalConfig, SuggestProviderConfig};
26pub use error::{Error, SuggestApiError};
27pub use geoname::{
28 AlternateNames, Geoname, GeonameAlternates, GeonameMatch, GeonameMatchType, GeonameType,
29};
30pub use metrics::{LabeledTimingSample, SuggestIngestionMetrics};
31pub use provider::{AmpMatchingStrategy, SuggestionProvider, SuggestionProviderConstraints};
32pub use query::{QueryWithMetricsResult, SuggestionQuery};
33pub use store::{InterruptKind, SuggestIngestionConstraints, SuggestStore, SuggestStoreBuilder};
34pub use suggestion::{raw_suggestion_url_matches, FtsMatchInfo, Suggestion, YelpSubjectType};
35
36pub(crate) type Result<T> = std::result::Result<T, Error>;
37pub type SuggestApiResult<T> = std::result::Result<T, SuggestApiError>;
38
39uniffi::setup_scaffolding!();
40
41use serde_json::Value as JsonValue;
42
43uniffi::custom_type!(JsonValue, String, {
44 remote,
45 try_lift: |val| serde_json::from_str(val.as_str()).map_err(Into::into),
46 lower: |obj| obj.to_string(),
47});