Skip to main content

insight_face_rs/
error.rs

1use ndarray::ShapeError;
2use ort::session::builder::SessionBuilder;
3
4#[derive(Debug, thiserror::Error)]
5pub enum Error {
6    #[error("lib load error: {0}")]
7    LoadLibError(String),
8    #[error("model load error: {0}")]
9    ModelLoadError(String),
10    #[error("model run error: {0}")]
11    ModelRunError(String),
12    #[error("align face error: {0}")]
13    AlignFaceError(String),
14}
15
16impl From<ort::Error<()>> for Error {
17    fn from(err: ort::Error<()>) -> Self {
18        Error::ModelLoadError(err.to_string())
19    }
20}
21
22impl From<ort::Error<SessionBuilder>> for Error {
23    fn from(err: ort::Error<SessionBuilder>) -> Self {
24        Error::ModelLoadError(err.to_string())
25    }
26}
27
28impl From<ShapeError> for Error {
29    fn from(err: ShapeError) -> Self {
30        Error::ModelRunError(err.to_string())
31    }
32}
33
34pub type Result<T, E = Error> = std::result::Result<T, E>;