use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ResponseErrorCode {
#[serde(rename = "server_error")]
ServerError,
#[serde(rename = "rate_limit_exceeded")]
RateLimitExceeded,
#[serde(rename = "invalid_prompt")]
InvalidPrompt,
#[serde(rename = "vector_store_timeout")]
VectorStoreTimeout,
#[serde(rename = "invalid_image")]
InvalidImage,
#[serde(rename = "invalid_image_format")]
InvalidImageFormat,
#[serde(rename = "invalid_base64_image")]
InvalidBase64Image,
#[serde(rename = "invalid_image_url")]
InvalidImageUrl,
#[serde(rename = "image_too_large")]
ImageTooLarge,
#[serde(rename = "image_too_small")]
ImageTooSmall,
#[serde(rename = "image_parse_error")]
ImageParseError,
#[serde(rename = "image_content_policy_violation")]
ImageContentPolicyViolation,
#[serde(rename = "invalid_image_mode")]
InvalidImageMode,
#[serde(rename = "image_file_too_large")]
ImageFileTooLarge,
#[serde(rename = "unsupported_image_media_type")]
UnsupportedImageMediaType,
#[serde(rename = "empty_image_file")]
EmptyImageFile,
#[serde(rename = "failed_to_download_image")]
FailedToDownloadImage,
#[serde(rename = "image_file_not_found")]
ImageFileNotFound,
}
impl std::fmt::Display for ResponseErrorCode {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::ServerError => write!(f, "server_error"),
Self::RateLimitExceeded => write!(f, "rate_limit_exceeded"),
Self::InvalidPrompt => write!(f, "invalid_prompt"),
Self::VectorStoreTimeout => write!(f, "vector_store_timeout"),
Self::InvalidImage => write!(f, "invalid_image"),
Self::InvalidImageFormat => write!(f, "invalid_image_format"),
Self::InvalidBase64Image => write!(f, "invalid_base64_image"),
Self::InvalidImageUrl => write!(f, "invalid_image_url"),
Self::ImageTooLarge => write!(f, "image_too_large"),
Self::ImageTooSmall => write!(f, "image_too_small"),
Self::ImageParseError => write!(f, "image_parse_error"),
Self::ImageContentPolicyViolation => write!(f, "image_content_policy_violation"),
Self::InvalidImageMode => write!(f, "invalid_image_mode"),
Self::ImageFileTooLarge => write!(f, "image_file_too_large"),
Self::UnsupportedImageMediaType => write!(f, "unsupported_image_media_type"),
Self::EmptyImageFile => write!(f, "empty_image_file"),
Self::FailedToDownloadImage => write!(f, "failed_to_download_image"),
Self::ImageFileNotFound => write!(f, "image_file_not_found"),
}
}
}
impl Default for ResponseErrorCode {
fn default() -> ResponseErrorCode {
Self::ServerError
}
}