pub enum ConfigError {
Io(Error),
Parse(Error),
Validation(String),
PathTraversal(String),
}Expand description
Errors that can occur when loading or saving configuration.
These errors are produced internally by Config::load and
Config::save, as well as by any helper that reads or writes YAML
state files.
For backward compatibility with existing callers that use anyhow, both
functions still return anyhow::Result; ConfigError values are
automatically coerced via the From impl that anyhow provides for any
std::error::Error.
§Example
use par_term_config::ConfigError;
fn check_load_err(e: &anyhow::Error) {
if let Some(cfg_err) = e.downcast_ref::<ConfigError>() {
match cfg_err {
ConfigError::Io(io) => eprintln!("I/O error: {io}"),
ConfigError::Parse(p) => eprintln!("YAML parse error: {p}"),
ConfigError::Validation(msg) => eprintln!("Validation: {msg}"),
ConfigError::PathTraversal(msg) => eprintln!("Path traversal: {msg}"),
}
}
}Variants§
Io(Error)
An I/O error occurred reading or writing the config file.
Parse(Error)
The config file contained invalid YAML that could not be parsed.
Validation(String)
A field value failed semantic validation.
The inner string describes which field is invalid and why.
PathTraversal(String)
A path resolved outside the expected configuration directory, indicating a potential directory traversal attempt.
The inner string includes the offending path and the expected base.
Trait Implementations§
Source§impl Debug for ConfigError
impl Debug for ConfigError
Source§impl Display for ConfigError
impl Display for ConfigError
Source§impl Error for ConfigError
impl Error for ConfigError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()