Skip to main content

dingtalk_stream/
error.rs

1//! 统一错误类型
2
3/// SDK 统一错误类型
4#[derive(thiserror::Error, Debug)]
5#[non_exhaustive]
6pub enum Error {
7    /// WebSocket 连接错误
8    #[error("WebSocket error: {0}")]
9    WebSocket(#[from] tokio_tungstenite::tungstenite::Error),
10
11    /// HTTP 请求错误
12    #[error("HTTP error: {0}")]
13    Http(#[from] reqwest::Error),
14
15    /// JSON 序列化/反序列化错误
16    #[error("JSON error: {0}")]
17    Json(#[from] serde_json::Error),
18
19    /// 连接失败
20    #[error("Connection failed: {0}")]
21    Connection(String),
22
23    /// 认证失败
24    #[error("Authentication failed: {0}")]
25    Auth(String),
26
27    /// Handler 处理错误
28    #[error("Handler error: {0}")]
29    Handler(String),
30
31    /// 卡片操作错误
32    #[error("Card operation failed: {0}")]
33    Card(String),
34}
35
36/// SDK 统一 Result 类型
37pub type Result<T> = std::result::Result<T, Error>;