Implement IntoContextElement for ParametersContext.
This commit is contained in:
@@ -16,6 +16,7 @@ use crate::renderer::Renderable;
|
||||
use crate::renderer::Truthiness;
|
||||
use crate::renderer::WalkError;
|
||||
use crate::renderer::Walkable;
|
||||
use std::borrow::Borrow;
|
||||
use std::cmp::Ordering;
|
||||
use std::collections::HashMap;
|
||||
use std::rc::Rc;
|
||||
@@ -57,6 +58,7 @@ impl<'a> ParametersContext<'a> {
|
||||
};
|
||||
v.map(|some_v| (k, some_v))
|
||||
})
|
||||
// TODO: Should a None value here be the same as a key not existing, or should we store the Nones?
|
||||
.filter_map(|pair| pair)
|
||||
.collect();
|
||||
|
||||
@@ -66,6 +68,29 @@ impl<'a> ParametersContext<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> IntoContextElement for ParametersContext<'a> {
|
||||
fn into_context_element<'b>(
|
||||
&'b self,
|
||||
renderer: &DustRenderer,
|
||||
breadcrumbs: Option<&'b BreadcrumbTree<'b>>,
|
||||
) -> Option<IceResult<'b>> {
|
||||
panic!("into_context_element cannot be called on pseudo elements");
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> Walkable for ParametersContext<'a> {
|
||||
fn walk(&self, segment: &str) -> Result<&dyn IntoContextElement, WalkError> {
|
||||
self.params
|
||||
.get(segment)
|
||||
.map(|bte| bte.borrow())
|
||||
.ok_or(WalkError::CantWalk)
|
||||
}
|
||||
|
||||
fn is_pseudo_element(&self) -> bool {
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> IntoContextElement for RValue<'a> {
|
||||
fn into_context_element<'b>(
|
||||
&'b self,
|
||||
|
||||
Reference in New Issue
Block a user