use std::io;
use thiserror::Error as ThisError;
#[derive(ThisError, Debug)]
pub enum Error {
#[error("IO error: {0}")]
IoError(#[from] io::Error),
#[error("Parse error: {0}")]
ParseError(String),
#[error("Component error: {0}")]
ComponentError(String),
#[error("Render error: {0}")]
RenderError(String),
#[error("Configuration error: {0}")]
ConfigError(String),
#[error("YAML parsing error: {0}")]
YamlError(#[from] serde_yaml::Error),
#[error("TOML parsing error: {0}")]
TomlError(#[from] toml::de::Error),
#[error("Watch error: {0}")]
NotifyError(#[from] notify::Error),
#[cfg(feature = "minify")]
#[error("HTML minification error: {0}")]
MinifyError(#[from] minify_html::Error),
}