luaur_vm/functions/
luaopen_bit_32.rs1use 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::b_and::b_and;
6use crate::functions::b_arshift::b_arshift;
7use crate::functions::b_countlz::b_countlz;
8use crate::functions::b_countrz::b_countrz;
9use crate::functions::b_extract::b_extract;
10use crate::functions::b_lrot::b_lrot;
11use crate::functions::b_lshift::b_lshift;
12use crate::functions::b_not::b_not;
13use crate::functions::b_or::b_or;
14use crate::functions::b_replace::b_replace;
15use crate::functions::b_rrot::b_rrot;
16use crate::functions::b_rshift::b_rshift;
17use crate::functions::b_swap::b_swap;
18use crate::functions::b_test::b_test;
19use crate::functions::b_xor::b_xor;
20
21pub unsafe fn luaopen_bit32(L: *mut lua_State) -> core::ffi::c_int {
22 let bitlib: [LuaLReg; 16] = [
24 LuaLReg {
25 name: c"arshift".as_ptr(),
26 func: Some(b_arshift),
27 },
28 LuaLReg {
29 name: c"band".as_ptr(),
30 func: Some(b_and),
31 },
32 LuaLReg {
33 name: c"bnot".as_ptr(),
34 func: Some(b_not),
35 },
36 LuaLReg {
37 name: c"bor".as_ptr(),
38 func: Some(b_or),
39 },
40 LuaLReg {
41 name: c"bxor".as_ptr(),
42 func: Some(b_xor),
43 },
44 LuaLReg {
45 name: c"btest".as_ptr(),
46 func: Some(b_test),
47 },
48 LuaLReg {
49 name: c"extract".as_ptr(),
50 func: Some(b_extract),
51 },
52 LuaLReg {
53 name: c"lrotate".as_ptr(),
54 func: Some(b_lrot),
55 },
56 LuaLReg {
57 name: c"lshift".as_ptr(),
58 func: Some(b_lshift),
59 },
60 LuaLReg {
61 name: c"replace".as_ptr(),
62 func: Some(b_replace),
63 },
64 LuaLReg {
65 name: c"rrotate".as_ptr(),
66 func: Some(b_rrot),
67 },
68 LuaLReg {
69 name: c"rshift".as_ptr(),
70 func: Some(b_rshift),
71 },
72 LuaLReg {
73 name: c"countlz".as_ptr(),
74 func: Some(b_countlz),
75 },
76 LuaLReg {
77 name: c"countrz".as_ptr(),
78 func: Some(b_countrz),
79 },
80 LuaLReg {
81 name: c"byteswap".as_ptr(),
82 func: Some(b_swap),
83 },
84 LuaLReg {
85 name: core::ptr::null(),
86 func: None,
87 },
88 ];
89
90 lua_l_register(L, c"bit32".as_ptr(), bitlib.as_ptr());
91
92 1
93}