incrust 0.0.3

Rust template engine inspired by Jinja2.
Documentation
use std::fmt::Debug;
use std::collections::HashMap;
use super::parser;


pub type LoadResult = Result<String, LoadError>;

#[derive(Debug)]
pub enum LoadError {
    NotFound,
}


pub trait Loader: Debug {
    fn load(&self, name: &str) -> LoadResult;
}


pub type ParseResult = Result<parser::Template, ParseError>;

#[derive(Debug)]
pub enum ParseError {
    Syntax(String),
}


pub type RenderResult = Result<String, RenderError>;

#[derive(Debug)]
pub enum RenderError {
    LoadTemplate(LoadError),
    ParseTemplate(ParseError),
    VariableNotExists(String),
    FunctionCallException(String),
}

impl From<LoadError> for RenderError {
    fn from(err: LoadError) -> Self {
        RenderError::LoadTemplate(err)
    }
}

impl From<ParseError> for RenderError {
    fn from(err: ParseError) -> Self {
        RenderError::ParseTemplate(err)
    }
}


pub type Args = HashMap<&'static str, &'static str>;