Ran into issue: Can't returned owned data when its expecting a trait object.
This commit is contained in:
parent
737c98d8b7
commit
21b9e9282b
@ -247,9 +247,12 @@ impl IntoContextElement for Vec<PartialNameElement> {
|
|||||||
renderer: &DustRenderer,
|
renderer: &DustRenderer,
|
||||||
breadcrumbs: &Vec<&dyn IntoContextElement>,
|
breadcrumbs: &Vec<&dyn IntoContextElement>,
|
||||||
) -> &dyn ContextElement {
|
) -> &dyn ContextElement {
|
||||||
// renderer.render_partial_name(self,
|
OwnedLiteral::LString(
|
||||||
// TODO
|
renderer
|
||||||
&OwnedLiteral::LPositiveInteger(1)
|
.render_partial_name(self, breadcrumbs)
|
||||||
|
.expect("TODO: Make into_context_element return a RenderError"),
|
||||||
|
)
|
||||||
|
// &OwnedLiteral::LPositiveInteger(1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,21 +116,27 @@ impl<'a> DustRenderer<'a> {
|
|||||||
Ok(output)
|
Ok(output)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// For rendering a dynamic partial's name
|
/// For rendering a dynamic partial's name or an rvalue template
|
||||||
fn render_partial_name(
|
pub fn render_partial_name(
|
||||||
&'a self,
|
&'a self,
|
||||||
body: &'a Vec<PartialNameElement>,
|
body: &'a Vec<PartialNameElement>,
|
||||||
breadcrumbs: &Vec<&'a dyn IntoContextElement>,
|
breadcrumbs: &Vec<&'a dyn IntoContextElement>,
|
||||||
blocks: &'a BlockContext<'a>,
|
|
||||||
) -> Result<String, RenderError> {
|
) -> Result<String, RenderError> {
|
||||||
let converted_to_template_elements: Vec<TemplateElement<'a>> =
|
let converted_to_template_elements: Vec<TemplateElement<'a>> =
|
||||||
body.into_iter().map(|e| e.into()).collect();
|
body.into_iter().map(|e| e.into()).collect();
|
||||||
|
// Simple templates like partial names and reference rvalues
|
||||||
|
// cannot contain blocks or inline partials, so we use a blank
|
||||||
|
// BlockContext.
|
||||||
|
let empty_block_context = BlockContext {
|
||||||
|
breadcrumbs: &Vec::new(),
|
||||||
|
blocks: &InlinePartialTreeElement::new(None, HashMap::new()),
|
||||||
|
};
|
||||||
self.render_body(
|
self.render_body(
|
||||||
&Body {
|
&Body {
|
||||||
elements: converted_to_template_elements,
|
elements: converted_to_template_elements,
|
||||||
},
|
},
|
||||||
breadcrumbs,
|
breadcrumbs,
|
||||||
blocks,
|
&empty_block_context,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -311,7 +317,7 @@ impl<'a> DustRenderer<'a> {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
DustTag::DTPartial(partial) => {
|
DustTag::DTPartial(partial) => {
|
||||||
let partial_name = self.render_partial_name(&partial.name, breadcrumbs, blocks)?;
|
let partial_name = self.render_partial_name(&partial.name, breadcrumbs)?;
|
||||||
if partial.params.is_empty() {
|
if partial.params.is_empty() {
|
||||||
let new_breadcrumbs = self.new_breadcrumbs_partial(
|
let new_breadcrumbs = self.new_breadcrumbs_partial(
|
||||||
breadcrumbs,
|
breadcrumbs,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user