stac_server/
error.rs

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