Skip to main content

flagd_evaluation_engine/
error.rs

1use thiserror::Error;
2
3/// Error type for flagd-evaluation operations
4#[derive(Error, Debug)]
5pub enum FlagdEvaluationError {
6    #[error("Provider error: {0}")]
7    Provider(String),
8    #[error("Invalid configuration: {0}")]
9    Config(String),
10    #[error("Parse error: {0}")]
11    Parse(String),
12    #[error("IO error: {0}")]
13    Io(#[from] std::io::Error),
14    #[error("JSON error: {0}")]
15    Json(#[from] serde_json::Error),
16}
17
18impl From<Box<dyn std::error::Error>> for FlagdEvaluationError {
19    fn from(error: Box<dyn std::error::Error>) -> Self {
20        FlagdEvaluationError::Provider(error.to_string())
21    }
22}
23
24impl From<Box<dyn std::error::Error + Send + Sync>> for FlagdEvaluationError {
25    fn from(error: Box<dyn std::error::Error + Send + Sync>) -> Self {
26        FlagdEvaluationError::Provider(error.to_string())
27    }
28}