use crate::value::{Value, ValuesMap};
#[derive(Clone, Debug, PartialEq)]
enum Jinja2CompatMode {
None,
Version2_10, }
impl Default for Jinja2CompatMode {
fn default() -> Jinja2CompatMode {
Jinja2CompatMode::None
}
}
#[derive(Clone, Debug, PartialEq)]
pub struct Settings {
use_line_statements: bool,
trim_blocks: bool,
lstrip_blocks: bool,
cache_size: usize,
auto_reload: bool,
extensions: Extensions,
jinja_compat_mode: Jinja2CompatMode,
}
impl Default for Settings {
fn default() -> Settings {
Settings {
use_line_statements: false,
trim_blocks: false,
lstrip_blocks: false,
cache_size: 400,
auto_reload: true,
extensions: Extensions::default(),
jinja_compat_mode: Jinja2CompatMode::default(),
}
}
}
#[derive(Clone, Debug, PartialEq)]
struct Extensions {
do_ext: bool,
}
impl Default for Extensions {
fn default() -> Extensions {
Extensions { do_ext: false }
}
}
#[derive(Clone, Debug, PartialEq)]
pub struct TemplateEnv {
settings: Settings,
global_values: ValuesMap,
}
impl TemplateEnv {
pub fn add_global(&mut self, name: String, val: Value) {
todo!("Unimplemented")
}
pub fn remove_global(&mut self, name: String, val: Value) {
todo!("Unimplemented")
}
pub fn set_settings(&mut self, settings: Settings) {
self.settings = settings;
}
pub fn settings(&self) -> &Settings {
&self.settings
}
pub fn settings_mut(&mut self) -> &mut Settings {
&mut self.settings
}
}
impl Default for TemplateEnv {
fn default() -> TemplateEnv {
TemplateEnv {
settings: Settings::default(),
global_values: ValuesMap::default(),
}
}
}