use std::collections::HashMap;
use crate::Value;
pub mod parse;
pub mod compile;
pub mod template_manager;
pub mod templates;
#[cfg(test)]
mod test;
pub fn render(template_str: &str, data: &HashMap<String, Value>) -> Result<String, String> {
let tokens = parse::tokenize(template_str);
compile::compile(tokens, data.clone())
}
pub fn render_file(template_path: &str, data: &HashMap<String, Value>) -> Result<String, String> {
use std::fs;
let content = fs::read_to_string(template_path)
.map_err(|e| format!("Failed to read template file: {}", e))?;
render(&content, data)
}