use std::path::PathBuf;
use thiserror::Error;
pub type ConfigResult<T> = Result<T, ConfigError>;
#[derive(Debug, Error)]
pub enum ConfigError {
#[error("failed to read {path}: {source}")]
Io {
path: PathBuf,
source: std::io::Error,
},
#[error("failed to parse {path}: {source}")]
Parse {
path: PathBuf,
source: Box<toml::de::Error>,
},
#[error("invalid theme definition: {0}")]
InvalidTheme(Box<toml::de::Error>),
#[error("invalid color value: {0:?}")]
InvalidColor(String),
#[error("invalid value for {key}: {reason}")]
InvalidValue {
key: &'static str,
reason: String,
},
}