Skip to main content

uni_locy/
errors.rs

1use std::time::Duration;
2
3use thiserror::Error;
4
5#[derive(Debug, Error, Clone, PartialEq)]
6pub enum LocyError {
7    #[error("max iterations ({max}) exceeded for stratum {stratum_id} (rules: {rules})")]
8    MaxIterationsExceeded {
9        max: usize,
10        stratum_id: usize,
11        rules: String,
12    },
13
14    #[error("evaluation timeout: {elapsed:?} exceeded limit of {limit:?}")]
15    Timeout { elapsed: Duration, limit: Duration },
16
17    #[error("MSUM negative value in rule '{rule}', fold '{fold}': {value}")]
18    MsumNegativeValue {
19        rule: String,
20        fold: String,
21        value: f64,
22    },
23
24    #[error("executor error: {message}")]
25    ExecutorError { message: String },
26
27    #[error("evaluation error: {message}")]
28    EvaluationError { message: String },
29
30    #[error("type error: {message}")]
31    TypeError { message: String },
32
33    #[error("savepoint failed: {message}")]
34    SavepointFailed { message: String },
35
36    #[error("query resolution error: {message}")]
37    QueryResolutionError { message: String },
38
39    #[error("abduction error: {message}")]
40    AbductionError { message: String },
41}