1use thiserror::Error;
2
3#[derive(Error, Debug)]
5#[non_exhaustive]
6pub enum Error {
7 #[error(transparent)]
9 StreamBackend(#[from] Box<dyn std::error::Error + Send + Sync>),
10
11 #[error("{io}: {path}")]
13 FromPath {
14 #[source]
16 io: std::io::Error,
17
18 path: String,
20 },
21
22 #[error(transparent)]
24 InvalidHeaderName(#[from] http::header::InvalidHeaderName),
25
26 #[error(transparent)]
28 InvalidHeaderValue(#[from] http::header::InvalidHeaderValue),
29
30 #[error(transparent)]
32 InvalidMethod(#[from] http::method::InvalidMethod),
33
34 #[error(transparent)]
36 Join(#[from] tokio::task::JoinError),
37
38 #[error(transparent)]
40 Io(#[from] std::io::Error),
41
42 #[cfg(feature = "store")]
43 #[error(transparent)]
44 ObjectStore(#[from] object_store::Error),
46
47 #[cfg(feature = "geoparquet")]
48 #[error(transparent)]
49 Parquet(#[from] parquet::errors::ParquetError),
51
52 #[error(transparent)]
53 Reqwest(#[from] reqwest::Error),
55
56 #[error(transparent)]
57 SerdeJson(#[from] serde_json::Error),
59
60 #[error(transparent)]
61 Stac(#[from] stac::Error),
63
64 #[error(transparent)]
66 TryFromInt(#[from] std::num::TryFromIntError),
67
68 #[error("unsupported format: {0}")]
70 UnsupportedFormat(String),
71
72 #[error(transparent)]
74 UrlParse(#[from] url::ParseError),
75}