Skip to main content

gitee_rs/
error.rs

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}