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("Error: {0}")]
13    Error(String),
14}
15
16pub type Result<T> = std::result::Result<T, OpenAIToolError>;
17
18#[derive(Debug, Clone, Default, Deserialize)]
19pub struct ErrorMessage {
20    pub message: Option<String>,
21    pub type_name: Option<String>,
22    pub param: Option<String>,
23    pub code: Option<String>,
24}
25
26#[derive(Debug, Clone, Default, Deserialize)]
27pub struct ErrorResponse {
28    pub error: ErrorMessage,
29}