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>;