winbrew_database\config/
error.rs1use thiserror::Error;
2
3#[derive(Debug, Error)]
9pub enum ConfigValidationError {
10 #[error("invalid core.log_level '{value}': {reason}")]
13 InvalidLogLevel { value: String, reason: String },
14
15 #[error("invalid core.file_log_level '{value}': {reason}")]
18 InvalidFileLogLevel { value: String, reason: String },
19
20 #[error("expected a boolean value (true/false, 1/0, yes/no, on/off), got '{value}'")]
21 ExpectedBoolean { value: String },
22}
23
24#[derive(Debug, Error)]
26pub enum ConfigError {
27 #[error("config key cannot be empty")]
28 EmptyKey,
29
30 #[error("unknown config key: {key}")]
31 UnknownKey { key: String },
32
33 #[error("invalid {key} value: {value}")]
35 InvalidValue { key: String, value: String },
36
37 #[error("invalid value for '{key}'")]
39 Validation {
40 key: String,
41 #[source]
42 source: ConfigValidationError,
43 },
44}
45
46pub type ConfigResult<T> = std::result::Result<T, ConfigError>;