compiling templates in the same manner as the shim

This commit is contained in:
Tom Alexander
2020-04-10 20:27:27 -04:00
parent 7e0a617ba6
commit 743106684a
4 changed files with 56 additions and 1 deletions

6
src/renderer/mod.rs Normal file
View File

@@ -0,0 +1,6 @@
//! This module contains a renderer for a rust implementation of LinkedIn Dust
mod renderer;
pub use renderer::compile_template;
pub use renderer::CompiledTemplate;

19
src/renderer/renderer.rs Normal file
View File

@@ -0,0 +1,19 @@
use crate::parser::template;
use crate::parser::Template;
use nom::IResult;
#[derive(Clone, Debug)]
pub struct CompiledTemplate<'a> {
template: Template<'a>,
name: String,
}
pub fn compile_template<'a>(source: &'a str, name: String) -> CompiledTemplate<'a> {
// TODO: Make this function return a result with a custom error type. Break the nom IResult chain
// TODO: Make this all consuming
let (_remaining, parsed_template) = template(source).expect("Failed to compile template");
CompiledTemplate {
template: parsed_template,
name: name,
}
}