potato_type/
error.rs

1use pyo3::exceptions::PyRuntimeError;
2use pyo3::PyErr;
3use thiserror::Error;
4use tracing::error;
5
6#[derive(Error, Debug)]
7pub enum TypeError {
8    #[error("Error: {0}")]
9    Error(String),
10
11    #[error("Unknown provider: {0}")]
12    UnknownProviderError(String),
13
14    #[error("Unknown model: {0}")]
15    UnknownModelError(String),
16}
17
18impl From<TypeError> for PyErr {
19    fn from(err: TypeError) -> PyErr {
20        let msg = err.to_string();
21        error!("{}", msg);
22        PyRuntimeError::new_err(msg)
23    }
24}
25
26impl From<PyErr> for TypeError {
27    fn from(err: PyErr) -> Self {
28        TypeError::Error(err.to_string())
29    }
30}