1pub mod contrib;
4mod convert;
5mod environment;
6mod state;
7
8use mlua::LuaSerdeExt;
9
10use crate::convert::LuaSyntaxConfig;
11pub use crate::{
12 environment::LuaEnvironment,
13 state::{LuaStateMut, LuaStateRef},
14};
15
16#[cfg_attr(feature = "module", mlua::lua_module(name = "minijinja"))]
27pub fn minijinja_lua(lua: &mlua::Lua) -> mlua::Result<mlua::Table> {
28 let table = lua.create_table()?;
29
30 table.set("type", mlua::Function::wrap(contrib::minijinja_types))?;
31 table.set("path_loader", contrib::minijinja_path_loader(lua)?)?;
32
33 table.set("None", lua.null())?;
34 table.set("Environment", lua.create_proxy::<LuaEnvironment>()?)?;
35 table.set("SyntaxConfig", lua.create_proxy::<LuaSyntaxConfig>()?)?;
36
37 Ok(table)
38}