summaryrefslogtreecommitdiff
path: root/src/codegen.rs
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers+gitlab@digital-scurf.org>2022-05-06 19:28:34 +0000
committerDaniel Silverstone <dsilvers+gitlab@digital-scurf.org>2022-05-06 19:28:34 +0000
commit27b617cbaa9e6d4fb58a0b971b428a05da8ec5d9 (patch)
tree08067bf4290982e4a717ba55a660714084370158 /src/codegen.rs
parentc2cbccd45a2c356e458abc8bbef3193434e8572a (diff)
parent52ccfa5a1bf2893bdc63ff1bad2b2a88ca86ef95 (diff)
downloadsubplot-27b617cbaa9e6d4fb58a0b971b428a05da8ec5d9.tar.gz
Merge branch 'liw/tidy-up-error' into 'main'
tidy up error handling a bit See merge request subplot/subplot!275
Diffstat (limited to 'src/codegen.rs')
-rw-r--r--src/codegen.rs13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/codegen.rs b/src/codegen.rs
index b940b4d..5c4255f 100644
--- a/src/codegen.rs
+++ b/src/codegen.rs
@@ -62,12 +62,15 @@ fn tera(tmplspec: &TemplateSpec, templatename: &str) -> Result<Tera, SubplotErro
let dirname = tmplspec.template_filename().parent().unwrap();
for helper in tmplspec.helpers() {
let helper_path = dirname.join(helper);
- let helper_content = resource::read_as_string(helper_path, Some(templatename))?;
+ let helper_content = resource::read_as_string(&helper_path, Some(templatename))
+ .map_err(|err| SubplotError::ReadFile(helper_path.clone(), err))?;
let helper_name = helper.display().to_string();
tera.add_raw_template(&helper_name, &helper_content)
.map_err(|err| SubplotError::TemplateError(helper_name.to_string(), err))?;
}
- let template = resource::read_as_string(tmplspec.template_filename(), Some(templatename))?;
+ let path = tmplspec.template_filename();
+ let template = resource::read_as_string(path, Some(templatename))
+ .map_err(|err| SubplotError::ReadFile(path.to_path_buf(), err))?;
tera.add_raw_template("template", &template)
.map_err(|err| {
SubplotError::TemplateError(tmplspec.template_filename().display().to_string(), err)
@@ -76,8 +79,10 @@ fn tera(tmplspec: &TemplateSpec, templatename: &str) -> Result<Tera, SubplotErro
}
fn write(filename: &Path, content: &str) -> Result<(), SubplotError> {
- let mut f: File = File::create(filename)?;
- f.write_all(content.as_bytes())?;
+ let mut f: File = File::create(filename)
+ .map_err(|err| SubplotError::CreateFile(filename.to_path_buf(), err))?;
+ f.write_all(content.as_bytes())
+ .map_err(|err| SubplotError::WriteFile(filename.to_path_buf(), err))?;
Ok(())
}