use thiserror::Error;
#[derive(Error, Debug)]
pub enum Error {
#[error("API请求错误: {0}")]
RequestError(#[from] reqwest::Error),
#[error("腾讯云API错误: {code} - {message}")]
ApiError {
code: String,
message: String,
},
#[error("JSON解析错误: {0}")]
SerdeError(#[from] serde_json::Error),
#[error("HTTP头解析错误: {0}")]
HeaderError(String),
#[error("其他错误: {0}")]
Other(String),
}
pub type Result<T> = std::result::Result<T, Error>;
impl From<http::header::InvalidHeaderName> for Error {
fn from(err: http::header::InvalidHeaderName) -> Self {
Error::HeaderError(format!("无效的头名称: {}", err))
}
}
impl From<http::header::InvalidHeaderValue> for Error {
fn from(err: http::header::InvalidHeaderValue) -> Self {
Error::HeaderError(format!("无效的头值: {}", err))
}
}