use thiserror::Error;
#[derive(Debug, Error)]
pub enum Error {
#[cfg(feature = "pgstac")]
#[error(transparent)]
Bb8TokioPostgresRun(#[from] bb8::RunError<tokio_postgres::Error>),
#[error("backend error: {0}")]
Backend(String),
#[error("memory backend error: {0}")]
MemoryBackend(String),
#[cfg(feature = "pgstac")]
#[error(transparent)]
Pgstac(#[from] pgstac::Error),
#[error(transparent)]
SerdeJson(#[from] serde_json::Error),
#[error(transparent)]
SerdeUrlencodedSer(#[from] serde_urlencoded::ser::Error),
#[error(transparent)]
Stac(#[from] stac::Error),
#[error(transparent)]
StacApi(#[from] stac_api::Error),
#[error(transparent)]
StacAsync(#[from] stac_async::Error),
#[cfg(feature = "pgstac")]
#[error(transparent)]
TokioPostgres(#[from] tokio_postgres::Error),
#[error(transparent)]
TryFromInt(#[from] std::num::TryFromIntError),
#[error(transparent)]
UrlParse(#[from] url::ParseError),
}