1use std::fmt;
2
3pub type Result<T> = core::result::Result<T, TavilyError>;
4
5#[derive(Debug)]
6pub enum TavilyError {
7 Api(String),
8 Http(reqwest::Error),
9 Configuration(String),
10 RateLimit(String),
11}
12
13impl std::error::Error for TavilyError {}
14
15impl fmt::Display for TavilyError {
16 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
17 match self {
18 TavilyError::Api(msg) => write!(f, "API error: {}", msg),
19 TavilyError::Http(err) => write!(f, "HTTP error: {}", err),
20 TavilyError::Configuration(msg) => write!(f, "Configuration error: {}", msg),
21 TavilyError::RateLimit(msg) => write!(f, "Rate limit error: {}", msg),
22 }
23 }
24}
25
26impl From<reqwest::Error> for TavilyError {
27 fn from(err: reqwest::Error) -> Self {
28 TavilyError::Http(err)
29 }
30}