use crate::gstd_types::ResponseCode;
use derive_more::{Display, Error};
#[derive(Debug, Display, Error)]
pub enum Error {
#[display(fmt = "Failed to perform HTTP request: {_0}")]
RequestFailed(reqwest::Error),
#[display(fmt = "API responded with bad status: {_0}")]
BadStatus(#[error(not(source))] reqwest::StatusCode),
#[display(fmt = "Failed to parse base URL: {_0}")]
IncorrectBaseUrl(url::ParseError),
#[display(fmt = "Failed to parse URL: {_0}")]
IncorrectApiUrl(url::ParseError),
#[display(fmt = "Failed to process request with status `{_0}` and description `{_1}`")]
GstdError(ResponseCode, String),
}