teslatte/src/error.rs

45 lines
1.2 KiB
Rust
Raw Normal View History

2022-07-21 13:46:49 +10:00
#[derive(Debug, thiserror::Error, miette::Diagnostic)]
pub enum TeslatteError {
#[error("{request} server error: {msg}: {description:?}")]
#[diagnostic()]
ServerError {
request: String,
msg: String,
description: Option<String>,
},
#[error("{request} unhandled server response: {body}")]
#[diagnostic()]
UnhandledServerError { request: String, body: String },
#[error("{request} fetch error")]
#[diagnostic()]
FetchError {
source: reqwest::Error,
request: String,
},
#[error("{request} json decode error: {body}")]
#[diagnostic()]
DecodeJsonError {
source: serde_json::Error,
request: String,
body: String,
},
#[error("Unhandled reqwest error.")]
UnhandledReqwestError(#[source] reqwest::Error),
#[error("Did not supply a valid callback URL.")]
UserDidNotSupplyValidCallbackUrl(#[source] url::ParseError),
#[error("Callback URL did not contain a callback code.")]
CouldNotFindCallbackCode,
#[error("Could not convert \"{0}\" to an EnergySiteId.")]
DecodeEnergySiteIdError(String),
#[error("No refresh token available.")]
NoRefreshToken,
2022-07-21 13:46:49 +10:00
}