1
2use std::result;
3use thiserror::Error;
4
5
6#[derive(Debug, Error)]
7pub enum Error {
8 #[error("API usage error: {0}")]
9 ApiError(String),
10
11 #[error("Auth error: {0}")]
12 AuthError(String),
13
14 #[error("HTTP error: {0}")]
15 HttpError(String),
16
17 #[error("URL error: {0}")]
18 UrlError(String),
19
20 #[error("Unexpected record value: {0}")]
21 UnexpectedRecord(String),
22
23 #[error(transparent)]
24 AddrParseError(#[from] std::net::AddrParseError),
25
26 #[error(transparent)]
27 UreqError(#[from] ureq::Error),
28
29 #[error("Failed to lock: {0}")]
30 LockingError(String),
31
32 #[error(transparent)]
33 HeaderNameError(#[from] ureq::http::header::InvalidHeaderName),
34
35 #[error(transparent)]
36 HeaderValueError(#[from] ureq::http::header::InvalidHeaderValue),
37
38 #[error(transparent)]
39 IoError(#[from] std::io::Error),
40
41 #[error(transparent)]
42 JsonError(#[from] serde_json::Error),
43
44 }
47
48pub type Result<T> = result::Result<T, Error>;