luaur_repl_cli/functions/
copts.rs1use crate::functions::coverage_active::coverage_active;
2use luaur_compiler::records::compile_options::CompileOptions as LuauCompileOptions;
3
4#[repr(C)]
5#[allow(non_snake_case)]
6pub(crate) struct GlobalOptions {
7 pub(crate) optimizationLevel: i32,
8 pub(crate) debugLevel: i32,
9}
10
11extern "C" {
12 pub(crate) static mut globalOptions: GlobalOptions;
13}
14
15pub fn copts() -> LuauCompileOptions {
16 let mut result = LuauCompileOptions::default();
17
18 unsafe {
19 result.optimization_level = globalOptions.optimizationLevel;
20 result.debug_level = globalOptions.debugLevel;
21 }
22
23 result.type_info_level = 1;
24 result.coverage_level = if coverage_active() { 2 } else { 0 };
25
26 result
27}
28
29pub(crate) mod internal {
30 use super::*;
31
32 pub fn copts_wrapper() -> LuauCompileOptions {
33 copts()
34 }
35}