1use thiserror::Error;
2
3#[derive(Debug, Error)]
5#[non_exhaustive]
6pub enum Error {
7 #[cfg(feature = "pgstac")]
9 #[error(transparent)]
10 Bb8TokioPostgresRun(#[from] bb8::RunError<tokio_postgres::Error>),
11
12 #[cfg(feature = "duckdb")]
14 #[error(transparent)]
15 Bb8DuckdbRun(#[from] Box<bb8::RunError<Error>>),
16
17 #[cfg(feature = "duckdb")]
19 #[error(transparent)]
20 StacDuckdb(#[from] stac_duckdb::Error),
21
22 #[error("memory backend error: {0}")]
24 MemoryBackend(String),
25
26 #[cfg(feature = "pgstac")]
28 #[error(transparent)]
29 Pgstac(#[from] pgstac::Error),
30
31 #[error(transparent)]
33 SerdeJson(#[from] serde_json::Error),
34
35 #[error(transparent)]
37 SerdeUrlencodedSer(#[from] serde_urlencoded::ser::Error),
38
39 #[error(transparent)]
41 Stac(#[from] stac::Error),
42
43 #[error("this backend is read-only")]
45 ReadOnly,
46
47 #[cfg(feature = "pgstac")]
49 #[error(transparent)]
50 TokioPostgres(#[from] tokio_postgres::Error),
51
52 #[error(transparent)]
54 TryFromInt(#[from] std::num::TryFromIntError),
55
56 #[error(transparent)]
58 UrlParse(#[from] url::ParseError),
59}