use serde::{Deserialize, Serialize};
use thiserror::Error;
#[derive(Error, Debug, Serialize, Deserialize)]
pub enum ConfigError {
#[error("Configuration key not found: {0}")]
KeyNotFound(String),
#[error("Invalid configuration value: {0}")]
InvalidValue(String),
#[error("Configuration file not found: {0}")]
FileNotFound(String),
#[error("Failed to read configuration file: {0}")]
ReadFailed(String),
#[error("Failed to write configuration file: {0}")]
WriteFailed(String),
#[error("Failed to parse configuration: {0}")]
ParseFailed(String),
#[error("Configuration validation failed: {0}")]
ValidationFailed(String),
#[error("Internal configuration error: {0}")]
InternalError(String),
}