Skip to main content

luaur_vm/functions/
luaopen_os.rs

1use crate::functions::lua_l_register::lua_l_register;
2use crate::records::lua_l_reg::LuaLReg;
3use crate::type_aliases::lua_state::lua_State;
4
5use crate::functions::os_clock::os_clock;
6use crate::functions::os_date::os_date;
7use crate::functions::os_difftime::os_difftime;
8use crate::functions::os_time::os_time;
9
10pub unsafe fn luaopen_os(L: *mut lua_State) -> core::ffi::c_int {
11    // Faithful port of syslib[] in loslib.cpp.
12    let syslib: [LuaLReg; 5] = [
13        LuaLReg {
14            name: c"clock".as_ptr(),
15            func: Some(os_clock),
16        },
17        LuaLReg {
18            name: c"date".as_ptr(),
19            func: Some(os_date),
20        },
21        LuaLReg {
22            name: c"difftime".as_ptr(),
23            func: Some(os_difftime),
24        },
25        LuaLReg {
26            name: c"time".as_ptr(),
27            func: Some(os_time),
28        },
29        LuaLReg {
30            name: core::ptr::null(),
31            func: None,
32        },
33    ];
34
35    lua_l_register(L, c"os".as_ptr(), syslib.as_ptr());
36    1
37}