1use thiserror::Error;
2
3#[derive(Debug, Error)]
5pub enum DnaError {
6 #[error("HTTP error: {0}")]
8 Http(#[from] reqwest::Error),
9
10 #[error("API error [{code}]: {message}")]
12 Api {
13 code: String,
14 message: String,
15 details: String,
16 },
17
18 #[error("Failed to deserialize API response: {0}")]
20 Deserialize(#[from] serde_json::Error),
21
22 #[error("Unexpected API response: {0}")]
24 UnexpectedResponse(String),
25
26 #[error("Invalid argument: {0}")]
28 InvalidArgument(String),
29}
30
31pub type DnaResult<T> = Result<T, DnaError>;