use thiserror::Error;
#[derive(Debug, Error)]
pub enum ProviderError {
#[error("Provider configuration error: {0}")]
Configuration(String),
#[error("Resource not found: {0}")]
NotFound(String),
#[error("Invalid input: {0}")]
InvalidInput(String),
#[error("Render failed: {0}")]
RenderFailed(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("YAML error: {0}")]
Yaml(#[from] serde_yaml::Error),
#[error("JSON error: {0}")]
Json(#[from] serde_json::Error),
#[error("Internal provider error: {0}")]
Internal(String),
}
pub type ProviderResult<T> = Result<T, ProviderError>;