open_ai/
openai_error.rs

1// use std::fmt;
2// use serde::{Serialize, Deserialize};
3//
4// const ERROR_MSG_LEN: usize = 256;
5//
6// #[derive(Debug, Clone, Copy, Serialize, Deserialize)]
7// pub struct Error {
8//     msg: [char; ERROR_MSG_LEN],
9//     len: usize,
10// }
11//
12// impl Error {
13//     pub fn new(msg: &str) -> Self {
14//         let mut buffer = ['\0'; ERROR_MSG_LEN];
15//         let chars = msg.chars().take(ERROR_MSG_LEN).enumerate();
16//         for (i, c) in chars {
17//             buffer[i] = c;
18//         }
19//         Self {
20//             msg: buffer,
21//             len: msg.len().min(ERROR_MSG_LEN),
22//         }
23//     }
24// }
25//
26// impl fmt::Display for Error {
27//     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
28//         for &c in self.msg.iter().take(self.len) {
29//             write!(f, "{}", c)?;
30//         }
31//         Ok(())
32//     }
33// }
34//
35// impl std::error::Error for Error {}
36//
37// impl From<reqwest::Error> for Error {
38//     fn from(err: reqwest::Error) -> Self {
39//         let status = err.status();
40//         match status {
41//             Some(code) => Error::new(&err.to_string()),
42//             None => Error::new(&err.to_string()),
43//         }
44//     }
45// }
46//
47// impl From<serde_json::Error> for Error {
48//     fn from(err: serde_json::Error) -> Self {
49//         Error::new(&err.to_string())
50//     }
51// }