pub mod contrib;
mod convert;
mod environment;
mod state;
use mlua::LuaSerdeExt;
use crate::convert::LuaSyntaxConfig;
pub use crate::{
environment::LuaEnvironment,
state::{LuaStateMut, LuaStateRef},
};
#[cfg_attr(feature = "module", mlua::lua_module(name = "minijinja"))]
pub fn minijinja_lua(lua: &mlua::Lua) -> mlua::Result<mlua::Table> {
let table = lua.create_table()?;
table.set("type", mlua::Function::wrap(contrib::minijinja_types))?;
table.set("path_loader", contrib::minijinja_path_loader(lua)?)?;
table.set("None", lua.null())?;
table.set("Environment", lua.create_proxy::<LuaEnvironment>()?)?;
table.set("SyntaxConfig", lua.create_proxy::<LuaSyntaxConfig>()?)?;
Ok(table)
}