use thiserror::Error;
#[derive(Error, Debug)]
pub enum HttpError {
#[error("HTTP request failed: {0}")]
Reqwest(#[from] reqwest::Error),
#[error("Invalid URL '{0}'")]
InvalidUrl(String),
#[error("Server returned unsuccessful status code {status}: {message}")]
HttpStatus { status: u16, message: String },
#[error("Range request failed or not supported by server")]
RangeNotSupported,
#[error("Header parsing error: {0}")]
HeaderParse(String),
}
pub type Result<T> = std::result::Result<T, HttpError>;