Moved ParametersContext to its own file.
This commit is contained in:
28
src/renderer/parameters_context.rs
Normal file
28
src/renderer/parameters_context.rs
Normal 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> {}
|
||||
Reference in New Issue
Block a user