Implemented the renderer logic.

I should just need to implement ContextElement at this point.
This commit is contained in:
Tom Alexander 2020-05-08 22:22:30 -04:00
parent b45448edbd
commit 2f515e068d
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
3 changed files with 12 additions and 4 deletions

View File

@ -115,7 +115,7 @@ pub struct ParameterizedBlock<'a> {
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq)]
pub struct Partial<'a> { pub struct Partial<'a> {
pub name: String, pub name: String,
params: Vec<KVPair<'a>>, pub params: Vec<KVPair<'a>>,
} }
#[derive(Clone, Debug, PartialEq)] #[derive(Clone, Debug, PartialEq)]

View File

@ -25,4 +25,4 @@ impl<'a> ParametersContext<'a> {
} }
} }
impl<'a> ContextElement for ParametersContext<'a> {} // impl<'a> ContextElement for ParametersContext<'a> {}

View File

@ -174,8 +174,16 @@ impl<'a> DustRenderer<'a> {
} }
} }
DustTag::DTPartial(partial) => { DustTag::DTPartial(partial) => {
let rendered_content = self.render(&partial.name, breadcrumbs)?; if partial.params.is_empty() {
return Ok(rendered_content); let rendered_content = self.render(&partial.name, breadcrumbs)?;
return Ok(rendered_content);
} else {
let injected_context = ParametersContext::new(breadcrumbs, &partial.params);
let mut new_breadcrumbs = breadcrumbs.clone();
new_breadcrumbs.insert(new_breadcrumbs.len() - 1, &injected_context);
let rendered_content = self.render(&partial.name, &new_breadcrumbs)?;
return Ok(rendered_content);
}
} }
_ => (), // TODO: Implement the rest _ => (), // TODO: Implement the rest
} }