Skip to main content

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:   FSL-1.1-ALv2
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>;