stac_server/
error.rs

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