use ragit_fs::FileError;
use ragit_pdl::JsonType;
#[derive(Debug)]
pub enum Error {
JsonTypeError {
expected: JsonType,
got: JsonType,
},
JsonObjectInvalidField(String),
JsonObjectMissingField(String),
InvalidModelName {
name: String,
candidates: Vec<String>,
},
InvalidApiProvider(String),
PdlError(ragit_pdl::Error),
FileError(FileError),
ApiKeyNotFound { env_var: Option<String> },
StdIoError(std::io::Error),
CannotReadImage(String ),
NoTry,
ReqwestError(reqwest::Error),
JsonSerdeError(serde_json::Error),
TeraError(tera::Error),
WrongSchema(String),
ServerError {
status_code: u16,
body: Result<String, reqwest::Error>,
},
UnsupportedMediaFormat {
extension: Option<String>,
},
TestModel,
}
impl From<std::io::Error> for Error {
fn from(e: std::io::Error) -> Error {
Error::StdIoError(e)
}
}
impl From<ragit_pdl::Error> for Error {
fn from(e: ragit_pdl::Error) -> Error {
match e {
ragit_pdl::Error::FileError(e) => Error::FileError(e),
ragit_pdl::Error::JsonTypeError { expected, got } => Error::JsonTypeError { expected, got },
ragit_pdl::Error::JsonSerdeError(e) => Error::JsonSerdeError(e),
ragit_pdl::Error::TeraError(e) => Error::TeraError(e),
_ => Error::PdlError(e),
}
}
}
impl From<FileError> for Error {
fn from(e: FileError) -> Error {
Error::FileError(e)
}
}
impl From<reqwest::Error> for Error {
fn from(e: reqwest::Error) -> Error {
Error::ReqwestError(e)
}
}
impl From<serde_json::Error> for Error {
fn from(e: serde_json::Error) -> Error {
Error::JsonSerdeError(e)
}
}
impl From<tera::Error> for Error {
fn from(e: tera::Error) -> Error {
Error::TeraError(e)
}
}