use std::path::PathBuf;
#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum ConfigError {
#[error("failed to read config file `{path}`: {source}")]
Io {
path: PathBuf,
#[source]
source: std::io::Error,
},
#[error("environment interpolation failed at line {line}, column {column}: {reason}")]
Interpolation {
line: usize,
column: usize,
reason: String,
},
#[error("invalid configuration at `{path}`: {source}")]
Parse {
path: String,
#[source]
source: serde_yaml::Error,
},
#[error("{context}: {message}")]
Component {
context: String,
message: String,
},
#[error("invalid configuration: {0}")]
Validation(String),
}