use error_support::{ErrorHandling, GetErrorHandling};
use remote_settings::RemoteSettingsError;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("Search configuration not specified")]
SearchConfigNotSpecified,
#[error("Search configuration overrides not specified")]
SearchConfigOverridesNotSpecified,
#[error("No search config v2 records received from remote settings")]
SearchConfigNoRecords,
#[error("No search config overrides v2 records received from remote settings")]
SearchConfigOverridesNoRecords,
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
#[error("Remote Settings error: {0}")]
RemoteSettings(#[from] RemoteSettingsError),
}
#[derive(Debug, thiserror::Error, uniffi::Error)]
pub enum SearchApiError {
#[error("Other error: {reason}")]
Other { reason: String },
}
impl GetErrorHandling for Error {
type ExternalError = SearchApiError;
fn get_error_handling(&self) -> ErrorHandling<Self::ExternalError> {
ErrorHandling::convert(SearchApiError::Other {
reason: self.to_string(),
})
.report_error("search-unexpected")
}
}