eryon_surface/
error.rs

1/*
2    Appellation: error <module>
3    Contrib: @FL03
4*/
5
6/// a type alias for a [Result] with a [SurfaceError]
7pub type SurfaceResult<T = ()> = core::result::Result<T, SurfaceError>;
8
9#[derive(Debug, thiserror::Error)]
10pub enum SurfaceError {
11    #[error(transparent)]
12    CoreError(#[from] eryon_core::Error),
13    #[error(transparent)]
14    CncError(#[from] cnc::Error),
15    #[error(transparent)]
16    NeuralError(#[from] cnc::nn::NeuralError),
17    #[error(transparent)]
18    ShapeError(#[from] ndarray::ShapeError),
19}
20
21impl From<SurfaceError> for eryon::Error {
22    fn from(err: SurfaceError) -> Self {
23        match err {
24            SurfaceError::CoreError(e) => e,
25            _ => eryon::Error::BoxError(Box::new(err)),
26        }
27    }
28}
29
30impl From<&str> for SurfaceError {
31    fn from(err: &str) -> Self {
32        eryon::Error::from(err).into()
33    }
34}
35
36impl From<String> for SurfaceError {
37    fn from(err: String) -> Self {
38        eryon::Error::from(err).into()
39    }
40}