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