1use thiserror::Error;
2
3#[derive(Debug, Error)]
5pub enum Error {
6 #[cfg(feature = "pgstac")]
8 #[error(transparent)]
9 Bb8TokioPostgresRun(#[from] bb8::RunError<tokio_postgres::Error>),
10
11 #[cfg(feature = "duckdb")]
13 #[error(transparent)]
14 Bb8DuckdbRun(#[from] Box<bb8::RunError<Error>>),
15
16 #[error("backend error: {0}")]
18 Backend(String),
19
20 #[cfg(feature = "duckdb")]
22 #[error(transparent)]
23 StacDuckdb(#[from] stac_duckdb::Error),
24
25 #[error("memory backend error: {0}")]
27 MemoryBackend(String),
28
29 #[cfg(feature = "pgstac")]
31 #[error(transparent)]
32 Pgstac(#[from] pgstac::Error),
33
34 #[error(transparent)]
36 SerdeJson(#[from] serde_json::Error),
37
38 #[error(transparent)]
40 SerdeUrlencodedSer(#[from] serde_urlencoded::ser::Error),
41
42 #[error(transparent)]
44 Stac(#[from] stac::Error),
45
46 #[error(transparent)]
48 StacApi(#[from] stac_api::Error),
49
50 #[error("this backend is read-only")]
52 ReadOnly,
53
54 #[cfg(feature = "pgstac")]
56 #[error(transparent)]
57 TokioPostgres(#[from] tokio_postgres::Error),
58
59 #[error(transparent)]
61 TryFromInt(#[from] std::num::TryFromIntError),
62
63 #[error(transparent)]
65 UrlParse(#[from] url::ParseError),
66}