use thiserror::Error;
#[derive(Debug, Error)]
pub enum ClientError {
#[error("invalid base URL '{0}'")]
InvalidBaseUrl(String),
#[error("invalid endpoint path '{0}'")]
InvalidPath(String),
#[error("unknown OpenAPI operation '{0}'")]
UnknownOperation(String),
#[error("missing required path parameter '{parameter}' for operation '{operation_id}'")]
MissingPathParameter {
operation_id: String,
parameter: String,
},
#[error("request failed: {0}")]
Request(#[from] reqwest::Error),
#[error("failed to parse JSON: {0}")]
Json(#[from] serde_json::Error),
#[error("server returned status {status}: {body}")]
HttpStatus {
status: reqwest::StatusCode,
body: String,
},
}