1use reqwest::StatusCode;
4use thiserror::Error;
5
6#[derive(Debug, Error)]
7pub enum Error {
9 #[error("http error: {0}")]
11 Http(#[from] reqwest::Error),
12 #[error("io error: {0}")]
14 Io(#[from] std::io::Error),
15 #[error("network error: {0}")]
17 Network(String),
18 #[error("parse error: {0}")]
20 Parse(String),
21 #[error("authentication error: {0}")]
23 Auth(String),
24 #[error("invalid recipient domain")]
26 InvalidRecipient,
27 #[error("unsupported operation: {0}")]
29 Unsupported(String),
30 #[error("unexpected status {status}: {body}")]
32 Status { status: StatusCode, body: String },
33}
34
35pub type Result<T> = std::result::Result<T, Error>;