duo_auth/
errors.rs

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}