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