#[non_exhaustive]pub enum ConfigurationError {
Show 16 variants
ReadConfigurationFile {
path: PathBuf,
source: Error,
},
ParseConfigurationFile {
path: PathBuf,
source: Error,
},
InvalidConfigurationDocument {
path: PathBuf,
reason: String,
},
DuplicateConfigurationKey {
path: PathBuf,
key: String,
},
FixedSweepKeyConflict {
key: String,
fixed_path: PathBuf,
sweep_path: PathBuf,
},
TaskCountOverflow {
axis: String,
},
TaskOrdinalOutOfBounds {
ordinal: u64,
task_count: u64,
},
UnknownSweepParameter {
key: String,
},
EncodeTaskSelection {
key: String,
source: Error,
},
NoMatchingTaskConfiguration {
key: String,
},
AmbiguousTaskConfiguration {
key: String,
},
UnknownTaskParameter {
task_ordinal: u64,
key: String,
},
DecodeTaskParameter {
task_ordinal: u64,
key: String,
source: Error,
},
SerializeTaskParameters {
task_ordinal: u64,
source: Error,
},
UnknownProjectPath {
key: String,
},
WriteConfigurationFile {
path: PathBuf,
source: Error,
},
}Expand description
A failure encountered while loading or using standardized project configuration.
Variants are grouped conceptually by source-file IO, source-document validation, task-space expansion, resolved task access, and exact source export. The enum is non-exhaustive so later configuration formats can add precise diagnostics without forcing downstream exhaustive matches.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ReadConfigurationFile
One of the three standard JSON files could not be read.
Fields
ParseConfigurationFile
A readable configuration file did not contain valid JSON in its required document shape.
Duplicate object keys are detected during deserialization and reported through this variant rather than silently retaining the final value.
Fields
InvalidConfigurationDocument
A syntactically valid source document violated a configuration invariant.
Examples include an empty parameter name, a Cartesian axis without
candidates, inconsistent explicit-case key sets, or a non-string path
value. reason is intended for diagnostics; callers that need stable
programmatic distinctions should match one of the dedicated variants
below where available.
Fields
DuplicateConfigurationKey
One JSON object repeated an exact key.
JSON parsers often retain only the last duplicate entry. Scientific configuration rejects that ambiguity before constructing a parameter space or path table.
Fields
FixedSweepKeyConflict
A parameter was declared as both fixed and swept.
Fixed values are never defaults or override targets. Keeping the two key sets disjoint makes every resolved lookup unambiguous.
Fields
TaskCountOverflow
Multiplying Cartesian axis lengths exceeded the supported u64 task
count.
TaskOrdinalOutOfBounds
Indexed task lookup addressed an ordinal outside the generated space.
Fields
UnknownSweepParameter
Task selection named a fixed or absent key instead of a sweep key.
EncodeTaskSelection
A caller-provided typed selector could not be represented as JSON.
Fields
NoMatchingTaskConfiguration
No generated task has the requested exact sweep value.
AmbiguousTaskConfiguration
One key/value selector matched more than one generated task.
UnknownTaskParameter
A resolved task dictionary does not contain the requested exact key.
Fields
DecodeTaskParameter
A present JSON value could not be decoded into the caller’s requested Rust type.
Fields
SerializeTaskParameters
A resolved task dictionary could not be serialized as JSON.
Fields
UnknownProjectPath
A project path lookup addressed an undeclared exact key.
WriteConfigurationFile
Exact source configuration could not be written to its destination.
Trait Implementations§
Source§impl Debug for ConfigurationError
impl Debug for ConfigurationError
Source§impl Display for ConfigurationError
impl Display for ConfigurationError
Source§impl Error for ConfigurationError
impl Error for ConfigurationError
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()