luaur_vm/functions/
lua_t_init.rs1use crate::macros::lua_s_fix::luaS_fix;
2use crate::macros::lua_s_new::luaS_new;
3use crate::type_aliases::lua_state::lua_State;
4use crate::type_aliases::tms::TMS;
5
6#[allow(non_snake_case)]
7pub unsafe fn luaT_init(l: *mut lua_State) {
8 let typenames = [
9 c"nil".as_ptr(),
10 c"boolean".as_ptr(),
11 c"userdata".as_ptr(),
12 c"number".as_ptr(),
13 c"integer".as_ptr(),
14 c"vector".as_ptr(),
15 c"string".as_ptr(),
16 c"table".as_ptr(),
17 c"function".as_ptr(),
18 c"userdata".as_ptr(),
19 c"thread".as_ptr(),
20 c"buffer".as_ptr(),
21 c"class".as_ptr(),
22 c"object".as_ptr(),
23 ];
24
25 let eventnames = [
26 c"__index".as_ptr(),
27 c"__newindex".as_ptr(),
28 c"__mode".as_ptr(),
29 c"__namecall".as_ptr(),
30 c"__call".as_ptr(),
31 c"__iter".as_ptr(),
32 c"__len".as_ptr(),
33 c"__eq".as_ptr(),
34 c"__add".as_ptr(),
35 c"__sub".as_ptr(),
36 c"__mul".as_ptr(),
37 c"__div".as_ptr(),
38 c"__idiv".as_ptr(),
39 c"__mod".as_ptr(),
40 c"__pow".as_ptr(),
41 c"__unm".as_ptr(),
42 c"__lt".as_ptr(),
43 c"__le".as_ptr(),
44 c"__concat".as_ptr(),
45 c"__type".as_ptr(),
46 c"__metatable".as_ptr(),
47 ];
48
49 let mut i = 0;
50 while i < typenames.len() {
51 (*(*l).global).ttname[i] = luaS_new(l, typenames[i]);
52 luaS_fix!((*(*l).global).ttname[i]);
53 i += 1;
54 }
55
56 i = 0;
57 while i < TMS::TM_N as usize {
58 (*(*l).global).tmname[i] = luaS_new(l, eventnames[i]);
59 luaS_fix!((*(*l).global).tmname[i]);
60 i += 1;
61 }
62}
63
64#[allow(unused_imports)]
65pub use luaT_init as lua_t_init;