rsdiff_core/error/kinds/
propagation.rs1use super::ErrorType;
6#[cfg(feature = "serde")]
7use serde::{Deserialize, Serialize};
8use strum::{Display, EnumCount, EnumIs, EnumIter, EnumString, VariantNames};
9
10#[derive(
11 Clone,
12 Copy,
13 Debug,
14 Display,
15 EnumCount,
16 EnumIs,
17 Eq,
18 Hash,
19 Ord,
20 PartialEq,
21 PartialOrd,
22 VariantNames,
23)]
24#[cfg_attr(
25 feature = "serde",
26 derive(Deserialize, Serialize,),
27 serde(rename_all = "snake_case")
28)]
29#[strum(serialize_all = "snake_case")]
30pub enum ModuleError {
31 Predict(PredictError),
32}
33
34impl std::error::Error for ModuleError {}
35
36impl ErrorType for ModuleError {
37 type Kind = ModuleError;
38
39 fn kind(&self) -> &Self::Kind {
40 self
41 }
42
43 fn name(&self) -> String {
44 self.to_string()
45 }
46}
47
48#[derive(
49 Clone,
50 Copy,
51 Debug,
52 Display,
53 EnumCount,
54 EnumIs,
55 EnumIter,
56 EnumString,
57 Eq,
58 Hash,
59 Ord,
60 PartialEq,
61 PartialOrd,
62 VariantNames,
63)]
64#[cfg_attr(
65 feature = "serde",
66 derive(Deserialize, Serialize,),
67 serde(rename_all = "snake_case")
68)]
69#[strum(serialize_all = "snake_case")]
70pub enum PredictError {
71 Arithmetic,
72 NumericalError,
73}
74
75impl std::error::Error for PredictError {}
76
77#[derive(
78 Clone,
79 Copy,
80 Debug,
81 Display,
82 EnumCount,
83 EnumIs,
84 EnumIter,
85 EnumString,
86 Eq,
87 Hash,
88 Ord,
89 PartialEq,
90 PartialOrd,
91 VariantNames,
92)]
93#[cfg_attr(
94 feature = "serde",
95 derive(Deserialize, Serialize,),
96 serde(rename_all = "snake_case")
97)]
98#[strum(serialize_all = "snake_case")]
99pub enum GradientError {
100 Backward,
101 Forward,
102}
103
104impl std::error::Error for GradientError {}