moduforge_rules_template/
lib.rs1mod error;
2mod interpreter;
3mod lexer;
4mod parser;
5
6use crate::interpreter::Interpreter;
7use crate::lexer::Lexer;
8use crate::parser::Parser;
9use moduforge_rules_expression::variable::Variable;
10
11pub use crate::error::{ParserError, TemplateRenderError};
12
13pub fn render(
14 template: &str,
15 context: Variable,
16) -> Result<Variable, TemplateRenderError> {
17 let tokens = Lexer::from(template.trim()).collect();
18 let nodes = Parser::from(tokens.as_slice()).collect()?;
19
20 Interpreter::from(nodes.as_slice()).collect_for(context)
21}