pub type Result<T, E = Error> = std::result::Result<T, E>;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error(transparent)]
Http(#[from] crate::http::Error),
#[error("login rejected: {}", .message.as_deref().unwrap_or("no reason given"))]
LoginRejected {
message: Option<String>,
},
#[error("password rejected: {}", .message.as_deref().unwrap_or("no reason given"))]
PasswordRejected {
message: Option<String>,
},
#[error(transparent)]
InvalidMeter(#[from] crate::models::api::internal::meter_tree::InvalidMeter),
#[error("no rates session: sign in with rates.login first")]
RatesSessionRequired,
}