1use reqwest;
2use std::fmt;
3
4#[derive(Debug)]
5pub enum GiteeError {
6 TokenNotFound,
7 RequestFailed(reqwest::Error),
8 ParseError(serde_json::Error),
9 ApiError(String),
10 NetworkError(String),
11}
12
13impl fmt::Display for GiteeError {
14 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
15 match self {
16 GiteeError::TokenNotFound => write!(f, "Gitee token not found. Please set GITEE_TOKEN environment variable."),
17 GiteeError::RequestFailed(err) => write!(f, "Request failed: {}", err),
18 GiteeError::ParseError(err) => write!(f, "Parse error: {}", err),
19 GiteeError::ApiError(msg) => write!(f, "API error: {}", msg),
20 GiteeError::NetworkError(msg) => write!(f, "Network error: {}", msg),
21 }
22 }
23}
24
25impl std::error::Error for GiteeError {}
26
27impl From<reqwest::Error> for GiteeError {
28 fn from(err: reqwest::Error) -> Self {
29 GiteeError::RequestFailed(err)
30 }
31}
32
33impl From<serde_json::Error> for GiteeError {
34 fn from(err: serde_json::Error) -> Self {
35 GiteeError::ParseError(err)
36 }
37}