oxirs_physics/
error.rs

1//! Error Types for Physics Module
2
3use thiserror::Error;
4
5/// Physics module errors
6#[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
40/// Result type for physics operations
41pub type PhysicsResult<T> = Result<T, PhysicsError>;