Moved ParametersContext to its own file.
This commit is contained in:
parent
1a6db195cb
commit
b45448edbd
@ -6,6 +6,7 @@ pub use parser::template;
|
|||||||
pub use parser::Body;
|
pub use parser::Body;
|
||||||
pub use parser::DustTag;
|
pub use parser::DustTag;
|
||||||
pub use parser::Filter;
|
pub use parser::Filter;
|
||||||
|
pub use parser::KVPair;
|
||||||
pub use parser::RValue;
|
pub use parser::RValue;
|
||||||
pub use parser::Special;
|
pub use parser::Special;
|
||||||
pub use parser::Template;
|
pub use parser::Template;
|
||||||
|
@ -125,9 +125,9 @@ pub enum RValue<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq)]
|
#[derive(Clone, Debug, PartialEq)]
|
||||||
struct KVPair<'a> {
|
pub struct KVPair<'a> {
|
||||||
key: &'a str,
|
pub key: &'a str,
|
||||||
value: RValue<'a>,
|
pub value: RValue<'a>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq)]
|
#[derive(Clone, Debug, PartialEq)]
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
mod context_element;
|
mod context_element;
|
||||||
mod errors;
|
mod errors;
|
||||||
|
mod parameters_context;
|
||||||
mod renderer;
|
mod renderer;
|
||||||
|
|
||||||
pub use context_element::ContextElement;
|
pub use context_element::ContextElement;
|
||||||
|
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> {}
|
@ -1,13 +1,13 @@
|
|||||||
use crate::parser::template;
|
use crate::parser::template;
|
||||||
use crate::parser::Body;
|
use crate::parser::Body;
|
||||||
use crate::parser::DustTag;
|
use crate::parser::DustTag;
|
||||||
use crate::parser::RValue;
|
|
||||||
use crate::parser::Special;
|
use crate::parser::Special;
|
||||||
use crate::parser::Template;
|
use crate::parser::Template;
|
||||||
use crate::parser::TemplateElement;
|
use crate::parser::TemplateElement;
|
||||||
use crate::renderer::context_element::ContextElement;
|
use crate::renderer::context_element::ContextElement;
|
||||||
use crate::renderer::errors::CompileError;
|
use crate::renderer::errors::CompileError;
|
||||||
use crate::renderer::errors::RenderError;
|
use crate::renderer::errors::RenderError;
|
||||||
|
use crate::renderer::parameters_context::ParametersContext;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
@ -254,11 +254,6 @@ fn walk_path<'a>(
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ParametersContext<'a> {
|
|
||||||
params: HashMap<&'a str, RValue<'a>>,
|
|
||||||
breadcrumbs: &'a Vec<&'a dyn ContextElement>,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user