Moved ParametersContext to its own file.

This commit is contained in:
Tom Alexander
2020-05-08 22:12:35 -04:00
parent 1a6db195cb
commit b45448edbd
5 changed files with 34 additions and 9 deletions

View File

@@ -0,0 +1,28 @@
use crate::parser::KVPair;
use crate::parser::RValue;
use crate::renderer::context_element::ContextElement;
use std::collections::HashMap;
#[derive(Clone, Debug)]
pub struct ParametersContext<'a> {
params: HashMap<&'a str, &'a RValue<'a>>,
breadcrumbs: &'a Vec<&'a dyn ContextElement>,
}
impl<'a> ParametersContext<'a> {
pub fn new(
breadcrumbs: &'a Vec<&'a dyn ContextElement>,
params: &'a Vec<KVPair<'a>>,
) -> ParametersContext<'a> {
let param_map = params
.iter()
.map(|pair: &KVPair<'a>| (pair.key, &pair.value))
.collect();
ParametersContext {
params: param_map,
breadcrumbs: breadcrumbs,
}
}
}
impl<'a> ContextElement for ParametersContext<'a> {}