|
|
|
@ -5,6 +5,7 @@ use crate::parser::RValue;
|
|
|
|
|
use crate::renderer::breadcrumb_tree::BreadcrumbTree;
|
|
|
|
|
use crate::renderer::context_element::CompareContextElement;
|
|
|
|
|
use crate::renderer::context_element::ContextElement;
|
|
|
|
|
use crate::renderer::context_element::IceResult;
|
|
|
|
|
use crate::renderer::context_element::IntoContextElement;
|
|
|
|
|
use crate::renderer::tree_walking::walk_path;
|
|
|
|
|
use crate::renderer::DustRenderer;
|
|
|
|
@ -37,24 +38,25 @@ impl<'a> IntoContextElement for RValue<'a> {
|
|
|
|
|
&'b self,
|
|
|
|
|
renderer: &DustRenderer,
|
|
|
|
|
breadcrumbs: Option<&'b BreadcrumbTree<'b>>,
|
|
|
|
|
) -> Option<&'b dyn ContextElement> {
|
|
|
|
|
match self {
|
|
|
|
|
RValue::RVLiteral(owned_literal) => Some(owned_literal),
|
|
|
|
|
RValue::RVPath(path) => walk_path(breadcrumbs, &path.keys)
|
|
|
|
|
.map(|ice| ice.into_context_element(renderer, breadcrumbs))
|
|
|
|
|
.ok()
|
|
|
|
|
.flatten(),
|
|
|
|
|
RValue::RVTemplate(template) => {
|
|
|
|
|
// TODO
|
|
|
|
|
// renderer
|
|
|
|
|
// .render_partial_name(template, breadcrumbs)
|
|
|
|
|
// .map(|rendered| OwnedLiteral::LString(rendered))
|
|
|
|
|
// .ok()
|
|
|
|
|
// .as_ref()
|
|
|
|
|
// .map(|l| l as _)
|
|
|
|
|
todo!()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
) -> Option<IceResult<'b>> {
|
|
|
|
|
todo!()
|
|
|
|
|
// match self {
|
|
|
|
|
// RValue::RVLiteral(owned_literal) => Some(owned_literal),
|
|
|
|
|
// RValue::RVPath(path) => walk_path(breadcrumbs, &path.keys)
|
|
|
|
|
// .map(|ice| ice.into_context_element(renderer, breadcrumbs))
|
|
|
|
|
// .ok()
|
|
|
|
|
// .flatten(),
|
|
|
|
|
// RValue::RVTemplate(template) => {
|
|
|
|
|
// // TODO
|
|
|
|
|
// // renderer
|
|
|
|
|
// // .render_partial_name(template, breadcrumbs)
|
|
|
|
|
// // .map(|rendered| OwnedLiteral::LString(rendered))
|
|
|
|
|
// // .ok()
|
|
|
|
|
// // .as_ref()
|
|
|
|
|
// // .map(|l| l as _)
|
|
|
|
|
// todo!()
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|