1use thiserror::Error;
2use url::ParseError;
3
4#[derive(Debug, Error)]
5pub enum TweetyError {
6 #[error("Error reading file: {0}")]
7 FileIOError(String),
8 #[error("Connection error occurred: {0}")]
9 NetworkError(String),
10 #[error("Authentication error occurred")]
11 AuthError,
12 #[error("Request Error :{0}")]
13 RequestError(reqwest::Error),
14 #[error("API responded with an error: {0}")]
15 ApiError(String),
16 #[error("Failed to parse JSON response: {0}")]
17 JsonParseError(String),
18 #[error("Parse Error: {0}")]
19 UrlParseError(ParseError),
20 #[error("Twitter consumer credentials are missing. Please set the 'consumer_key', 'consumer_secret', 'access_token', and 'access_token_secret' in your configuration:")]
21 MissingCredentials,
22}
23
24impl From<reqwest::Error> for TweetyError {
25 fn from(err: reqwest::Error) -> TweetyError {
26 TweetyError::RequestError(err)
27 }
28}