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