diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2021-09-04 14:49:32 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2021-09-04 14:49:32 +0100 |
commit | f6137e18d219fd27becd908a2f47444a9adc55e0 (patch) | |
tree | 10c1e7961c96138a49109419d559469051ece0de /src | |
parent | 614014041e493e1a4b6d5729320b42af39d89c68 (diff) | |
download | subplot-f6137e18d219fd27becd908a2f47444a9adc55e0.tar.gz |
bindings: Example chained error for parsing bindings
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings.rs | 4 | ||||
-rw-r--r-- | src/error.rs | 4 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/bindings.rs b/src/bindings.rs index 5909316..4447c66 100644 --- a/src/bindings.rs +++ b/src/bindings.rs @@ -513,7 +513,9 @@ impl Bindings { let yaml = resource::read_as_string(filename.as_ref()) .map_err(|e| SubplotError::BindingsFileNotFound(filename.as_ref().into(), e))?; event!(Level::TRACE, "Loaded file content"); - self.add_from_yaml(&yaml)?; + self.add_from_yaml(&yaml).map_err(|e| { + SubplotError::BindingFileParseError(filename.as_ref().to_owned(), Box::new(e)) + })?; Ok(()) } diff --git a/src/error.rs b/src/error.rs index 532714b..92e8edb 100644 --- a/src/error.rs +++ b/src/error.rs @@ -36,6 +36,10 @@ pub enum SubplotError { #[error("simple pattern contains regex metacharacters: {0}")] SimplePatternHasMetaCharacters(String), + /// Error while parsing a bindings file + #[error("binding file failed to parse: {0}")] + BindingFileParseError(PathBuf, #[source] Box<SubplotError>), + /// Scenario step does not match a known binding /// /// This may be due to the binding missing entirely, or that the |