1pub 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}