openai_tools/common/
errors.rs1use serde::Deserialize;
2use thiserror::Error;
3
4#[derive(Error, Debug)]
5pub enum OpenAIToolError {
6 #[error("Request error: {0}")]
7 RequestError(#[from] request::Error),
8 #[error("JSON serialization/deserialization error: {0}")]
9 SerdeJsonError(#[from] serde_json::Error),
10 #[error("Error from anyhow: {0}")]
11 AnyhowError(#[from] anyhow::Error),
12 #[error("WebSocket error: {0}")]
13 WebSocketError(String),
14 #[error("Realtime API error: {code} - {message}")]
15 RealtimeError { code: String, message: String },
16 #[error("Error: {0}")]
17 Error(String),
18}
19
20pub type Result<T> = std::result::Result<T, OpenAIToolError>;
21
22#[derive(Debug, Clone, Default, Deserialize)]
23pub struct ErrorMessage {
24 pub message: Option<String>,
25 pub type_name: Option<String>,
26 pub param: Option<String>,
27 pub code: Option<String>,
28}
29
30#[derive(Debug, Clone, Default, Deserialize)]
31pub struct ErrorResponse {
32 pub error: ErrorMessage,
33}