Skip to main content

luaur_compiler/records/
lua_compile_options.rs

1//! Node: `cxx:Record:Luau.Compiler:Compiler/include/luacode.h:23:lua_CompileOptions`
2//!
3//! Faithful `#[repr(C)]` port of the public `lua_CompileOptions` struct passed
4//! across the C ABI to `luau_compile`. Field defaults (optimizationLevel=1,
5//! debugLevel=1, …) are documented in the header but applied by `luau_compile`
6//! when `options` is null, not by the struct, so this is a plain layout type.
7
8use crate::type_aliases::lua_library_member_constant_callback::lua_LibraryMemberConstantCallback;
9use crate::type_aliases::lua_library_member_type_callback::lua_LibraryMemberTypeCallback;
10use core::ffi::c_char;
11
12#[repr(C)]
13#[derive(Debug, Clone, Copy)]
14pub struct LuaCompileOptions {
15    pub optimization_level: i32,
16    pub debug_level: i32,
17    pub type_info_level: i32,
18    pub coverage_level: i32,
19
20    pub vector_lib: *const c_char,
21    pub vector_ctor: *const c_char,
22
23    pub vector_type: *const c_char,
24
25    pub mutable_globals: *const *const c_char,
26
27    pub userdata_types: *const *const c_char,
28
29    pub libraries_with_known_members: *const *const c_char,
30    pub library_member_type_cb: lua_LibraryMemberTypeCallback,
31    pub library_member_constant_cb: lua_LibraryMemberConstantCallback,
32
33    pub disabled_builtins: *const *const c_char,
34}