diff options
Diffstat (limited to 'src/templatespec.rs')
-rw-r--r-- | src/templatespec.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/templatespec.rs b/src/templatespec.rs index 5d7150b..28ab7e1 100644 --- a/src/templatespec.rs +++ b/src/templatespec.rs @@ -1,5 +1,4 @@ use crate::resource; -use crate::Result; use crate::SubplotError; use serde::Deserialize; @@ -21,8 +20,8 @@ pub struct TemplateSpec { impl TemplateSpec { // Create a new TemplateSpec from YAML text. - fn from_yaml(yaml: &str) -> Result<TemplateSpec> { - Ok(serde_yaml::from_str(yaml)?) + fn from_yaml(yaml: &str) -> Result<TemplateSpec, SubplotError> { + serde_yaml::from_str(yaml).map_err(SubplotError::Metadata) } // Create a new TemplateSpec. @@ -40,8 +39,9 @@ impl TemplateSpec { } /// Read a template.yaml file and create the corresponding TemplateSpec. - pub fn from_file(filename: &Path) -> Result<TemplateSpec> { - let yaml = resource::read_as_string(filename, None)?; + pub fn from_file(filename: &Path) -> Result<TemplateSpec, SubplotError> { + let yaml = resource::read_as_string(filename, None) + .map_err(|err| SubplotError::ReadFile(filename.to_path_buf(), err))?; let spec = TemplateSpec::from_yaml(&yaml)?; let dirname = match filename.parent() { Some(x) => x, |