summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2021-09-04 14:49:32 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2021-09-04 14:49:32 +0100
commitf6137e18d219fd27becd908a2f47444a9adc55e0 (patch)
tree10c1e7961c96138a49109419d559469051ece0de /src
parent614014041e493e1a4b6d5729320b42af39d89c68 (diff)
downloadsubplot-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.rs4
-rw-r--r--src/error.rs4
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