openai_tools/common/
errors.rs

1use 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}