use thiserror::Error;
#[derive(Error, Debug)]
pub enum ValyuError {
#[error("HTTP request failed: {0}")]
RequestFailed(#[from] reqwest::Error),
#[error("API error: {0}")]
ApiError(String),
#[error("Failed to parse API response: {0}")]
ParseError(String),
#[error("Invalid API key provided")]
InvalidApiKey,
#[error("Invalid request parameters: {0}")]
InvalidRequest(String),
#[error("Rate limit exceeded")]
RateLimitExceeded,
#[error("Service unavailable")]
ServiceUnavailable,
}
pub type Result<T> = std::result::Result<T, ValyuError>;