Simplified the RenderError class.

This commit is contained in:
Tom Alexander
2020-05-09 14:27:42 -04:00
parent 05b56e83a9
commit 5d7c991bf0
2 changed files with 14 additions and 33 deletions

View File

@@ -51,14 +51,11 @@ impl<'a> DustRenderer<'a> {
&'a self,
name: &str,
breadcrumbs: &Vec<&'a dyn ContextElement>,
) -> Result<String, RenderError<'a>> {
) -> Result<String, RenderError> {
let main_template = match self.templates.get(name) {
Some(tmpl) => tmpl,
None => {
return Err(RenderError::Generic(format!(
"No template named {} in context",
name
)));
return Err(RenderError::TemplateNotFound(name.to_owned()));
}
};
self.render_body(&main_template.contents, breadcrumbs)
@@ -68,7 +65,7 @@ impl<'a> DustRenderer<'a> {
&'a self,
body: &'a Body,
breadcrumbs: &Vec<&'a dyn ContextElement>,
) -> Result<String, RenderError<'a>> {
) -> Result<String, RenderError> {
let mut output = String::new();
for elem in &body.elements {
match elem {
@@ -86,7 +83,7 @@ impl<'a> DustRenderer<'a> {
&'a self,
tag: &'a DustTag,
breadcrumbs: &Vec<&'a dyn ContextElement>,
) -> Result<String, RenderError<'a>> {
) -> Result<String, RenderError> {
match tag {
DustTag::DTComment(_comment) => (),
DustTag::DTSpecial(special) => {
@@ -181,8 +178,7 @@ impl<'a> DustRenderer<'a> {
let injected_context = ParametersContext::new(breadcrumbs, &partial.params);
let mut new_breadcrumbs = breadcrumbs.clone();
new_breadcrumbs.insert(new_breadcrumbs.len() - 1, &injected_context);
// TODO: Change unwrap to ?
let rendered_content = self.render(&partial.name, &new_breadcrumbs).unwrap();
let rendered_content = self.render(&partial.name, &new_breadcrumbs)?;
return Ok(rendered_content);
}
}