1use thiserror::Error;
4
5#[derive(Debug, Error)]
7pub enum PhysicsError {
8 #[error("Simulation error: {0}")]
9 Simulation(String),
10
11 #[error("Parameter extraction error: {0}")]
12 ParameterExtraction(String),
13
14 #[error("Result injection error: {0}")]
15 ResultInjection(String),
16
17 #[error("Physics constraint violation: {0}")]
18 ConstraintViolation(String),
19
20 #[error("Conservation law violation: {law}, expected: {expected}, actual: {actual}")]
21 ConservationViolation {
22 law: String,
23 expected: f64,
24 actual: f64,
25 },
26
27 #[error("Unit conversion error: {0}")]
28 UnitConversion(String),
29
30 #[error("RDF query error: {0}")]
31 RdfQuery(String),
32
33 #[error("SAMM parsing error: {0}")]
34 SammParsing(String),
35
36 #[error("Internal error: {0}")]
37 Internal(String),
38}
39
40pub type PhysicsResult<T> = Result<T, PhysicsError>;