1#[derive(Debug, thiserror::Error)]
4pub enum CalcError {
5 #[error("invalid input: {0}")]
6 InvalidInput(String),
7
8 #[error("ruleset '{id}' expired on {until}")]
10 RulesetExpired { id: String, until: String },
11
12 #[error("emission factor not found for activity '{0}'")]
14 FactorNotFound(String),
15
16 #[error("methodology mismatch: {0}")]
18 MethodologyMismatch(String),
19
20 #[error("not implemented: {methodology} — {reason}")]
22 NotImplemented { methodology: String, reason: String },
23
24 #[error("cross-field validation failed: {0}")]
26 CrossFieldViolation(String),
27
28 #[error("canonicalization error: {0}")]
30 CanonicalizeError(String),
31}