open_feature_flagd/
error.rs

1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum FlagdError {
5    #[error("Provider error: {0}")]
6    Provider(String),
7    #[error("Connection error: {0}")]
8    Connection(String),
9    #[error("Invalid configuration: {0}")]
10    Config(String),
11}
12
13// Add implementations for error conversion
14impl From<Box<dyn std::error::Error>> for FlagdError {
15    fn from(error: Box<dyn std::error::Error>) -> Self {
16        FlagdError::Provider(error.to_string())
17    }
18}
19
20impl From<Box<dyn std::error::Error + Send + Sync>> for FlagdError {
21    fn from(error: Box<dyn std::error::Error + Send + Sync>) -> Self {
22        FlagdError::Provider(error.to_string())
23    }
24}
25
26impl From<anyhow::Error> for FlagdError {
27    fn from(error: anyhow::Error) -> Self {
28        FlagdError::Provider(error.to_string())
29    }
30}