intermodal/bin/gen/src/template_ext.rs
Casey Rodarmor 342266853e
Improve bin/gen error messages
Create an error enum with actual error messages.

type: development
2020-04-29 00:36:25 -07:00

27 lines
543 B
Rust

use crate::common::*;
pub(crate) trait TemplateExt {
#[throws]
fn render_newline(&self) -> String;
#[throws]
fn render_to(&self, path: impl AsRef<Path>) {
let path = path.as_ref();
let text = self.render_newline()?;
fs::write(&path, text).context(error::Filesystem { path })?;
}
}
impl<T: Template> TemplateExt for T {
#[throws]
fn render_newline(&self) -> String {
let mut text = self
.render()
.context(error::TemplateRender)?
.trim()
.to_owned();
text.push('\n');
text
}
}