Skip to main content

luaur_compiler/records/
compile_options.rs

1use crate::type_aliases::library_member_constant_callback::LibraryMemberConstantCallback;
2use crate::type_aliases::library_member_type_callback::LibraryMemberTypeCallback;
3
4#[repr(C)]
5#[derive(Debug, Clone, Copy)]
6pub struct CompileOptions {
7    pub optimization_level: core::ffi::c_int,
8    pub debug_level: core::ffi::c_int,
9    pub type_info_level: core::ffi::c_int,
10    pub coverage_level: core::ffi::c_int,
11    pub vector_lib: *const core::ffi::c_char,
12    pub vector_ctor: *const core::ffi::c_char,
13    pub vector_type: *const core::ffi::c_char,
14    pub mutable_globals: *const *const core::ffi::c_char,
15    pub userdata_types: *const *const core::ffi::c_char,
16    pub libraries_with_known_members: *const *const core::ffi::c_char,
17    pub library_member_type_cb: LibraryMemberTypeCallback,
18    pub library_member_constant_cb: LibraryMemberConstantCallback,
19    pub disabled_builtins: *const *const core::ffi::c_char,
20}
21
22impl Default for CompileOptions {
23    fn default() -> Self {
24        Self {
25            optimization_level: 1,
26            debug_level: 1,
27            type_info_level: 0,
28            coverage_level: 0,
29            vector_lib: core::ptr::null(),
30            vector_ctor: core::ptr::null(),
31            vector_type: core::ptr::null(),
32            mutable_globals: core::ptr::null(),
33            userdata_types: core::ptr::null(),
34            libraries_with_known_members: core::ptr::null(),
35            library_member_type_cb: None,
36            library_member_constant_cb: None,
37            disabled_builtins: core::ptr::null(),
38        }
39    }
40}