rust_wechat_core/
error.rs

1use std::fmt::Display;
2use std::io;
3use serde::Deserialize;
4use crate::__setter;
5
6#[derive(Debug, Default, thiserror::Error, Deserialize)]
7pub struct ServerError {
8    pub code: i32,
9    pub message: Option<String>,
10}
11impl ServerError {
12    __setter!(code: i32);
13    __setter!(message: Option<String>);
14}
15
16impl Display for ServerError {
17    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
18        write!(f, "code: {}, message: {}", self.code, &self.message.clone().unwrap_or("".to_string()))
19    }
20}
21
22#[derive(Debug, thiserror::Error)]
23pub enum WechatError {
24    #[error(transparent)]
25    ServerError(ServerError),
26    #[error("reqwest error: {0}")]
27    RequestError(#[from] reqwest::Error),
28    #[error("common error: {0}")]
29    CommonError(String),
30    #[error("common error: {0}")]
31    IoError(#[from] io::Error),
32    #[error("unsupported command: {0}")]
33    UnsupportedCommand(String),
34}