ai_providers/openai/
errors.rs1use std::{error::Error, fmt::Display};
2
3#[derive(Debug, PartialEq)]
4pub enum ConversionError {
5 FromStr(String),
6 TryFrom(String),
7}
8
9impl Display for ConversionError {
10 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11 match self {
12 ConversionError::FromStr(msg) => write!(f, "Failed to convert from string: {}", msg),
13 ConversionError::TryFrom(msg) => {
14 write!(f, "Failed to convert from {} to target type", msg)
15 }
16 }
17 }
18}
19
20impl Error for ConversionError {}
21
22#[derive(Debug, PartialEq)]
23pub enum InputError {
24 InvalidToolType(String),
25 InvalidRole(String),
26 InvalidButton(String),
27 ConversionError(ConversionError),
28 InvalidModelId(String),
29}
30
31impl Display for InputError {
32 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
33 match self {
34 InputError::InvalidToolType(msg) => write!(f, "Invalid tool type: {}", msg),
35 InputError::InvalidRole(msg) => {
36 write!(
37 f,
38 "The role {} is not compatible with InputMessageItem",
39 msg
40 )
41 }
42 InputError::InvalidButton(msg) => {
43 write!(f, "Invalid button value: {}", msg)
44 }
45 InputError::ConversionError(err) => write!(f, "Conversion error: {}", err),
46 InputError::InvalidModelId(err) => write!(f, "Invalid model id: {}", err),
47 }
48 }
49}
50
51impl Error for InputError {}
52
53impl From<ConversionError> for InputError {
54 fn from(error: ConversionError) -> Self {
55 InputError::ConversionError(error)
56 }
57}