1use thiserror::Error;
2
3use super::StdError;
4
5#[derive(Error, Debug)]
6pub enum Error {
7 #[error("Invalid API domain '{domain}': {cause}")]
8 InvalidApiDomain { domain: String, cause: StdError },
9
10 #[error("API request failed: {message} ({code})")]
11 ApiRequestFailed {
12 code: u64,
13 message: String,
14 message_detail: Option<String>,
15 },
16
17 #[error("Unspecified error")]
18 Unspecified(#[from] StdError),
19}
20
21impl Error {
22 pub(crate) fn unspecified<E: Into<StdError>>(err: E) -> Self {
23 Self::Unspecified(err.into())
24 }
25}