hyperi_rustlib/expression/error.rs
1// Project: hyperi-rustlib
2// File: src/expression/error.rs
3// Purpose: Expression error types
4// Language: Rust
5//
6// License: BUSL-1.1
7// Copyright: (c) 2026 HYPERI PTY LIMITED
8
9//! Error types for CEL expression compilation and evaluation.
10
11use thiserror::Error;
12
13/// Errors from expression validation, compilation, or evaluation.
14#[derive(Error, Debug)]
15pub enum ExpressionError {
16 /// Expression failed DFE profile validation or syntax check.
17 #[error("Expression validation failed: {}", .0.join("; "))]
18 Validation(Vec<String>),
19
20 /// Expression could not be compiled (syntax error).
21 #[error("Expression compilation failed: {0}")]
22 Compilation(String),
23
24 /// Expression evaluation failed at runtime (missing field, type mismatch).
25 #[error("Expression evaluation failed: {0}")]
26 Evaluation(String),
27}
28
29/// Convenience result type for expression operations.
30pub type ExpressionResult<T> = Result<T, ExpressionError>;