rust_wechat_core/
error.rs1use 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}