luaur_vm/functions/
luaopen_string.rs1use crate::functions::createmetatable_lstrlib::createmetatable_mut;
2use crate::functions::lua_l_register::lua_l_register;
3use crate::records::lua_l_reg::LuaLReg;
4use crate::type_aliases::lua_state::lua_State;
5
6use crate::functions::gmatch::gmatch;
7use crate::functions::str_byte::str_byte;
8use crate::functions::str_char::str_char;
9use crate::functions::str_find::str_find;
10use crate::functions::str_format::str_format;
11use crate::functions::str_gsub::str_gsub;
12use crate::functions::str_len::str_len;
13use crate::functions::str_lower::str_lower;
14use crate::functions::str_match::str_match;
15use crate::functions::str_pack::str_pack;
16use crate::functions::str_packsize::str_packsize;
17use crate::functions::str_rep::str_rep;
18use crate::functions::str_reverse::str_reverse;
19use crate::functions::str_split::str_split;
20use crate::functions::str_sub::str_sub;
21use crate::functions::str_unpack::str_unpack;
22use crate::functions::str_upper::str_upper;
23
24pub unsafe fn luaopen_string(l: *mut lua_State) -> core::ffi::c_int {
25 let strlib: [LuaLReg; 18] = [
29 LuaLReg {
30 name: c"byte".as_ptr(),
31 func: Some(str_byte),
32 },
33 LuaLReg {
34 name: c"char".as_ptr(),
35 func: Some(str_char),
36 },
37 LuaLReg {
38 name: c"find".as_ptr(),
39 func: Some(str_find),
40 },
41 LuaLReg {
42 name: c"format".as_ptr(),
43 func: Some(str_format),
44 },
45 LuaLReg {
46 name: c"gmatch".as_ptr(),
47 func: Some(gmatch),
48 },
49 LuaLReg {
50 name: c"gsub".as_ptr(),
51 func: Some(str_gsub),
52 },
53 LuaLReg {
54 name: c"len".as_ptr(),
55 func: Some(str_len),
56 },
57 LuaLReg {
58 name: c"lower".as_ptr(),
59 func: Some(str_lower),
60 },
61 LuaLReg {
62 name: c"match".as_ptr(),
63 func: Some(str_match),
64 },
65 LuaLReg {
66 name: c"rep".as_ptr(),
67 func: Some(str_rep),
68 },
69 LuaLReg {
70 name: c"reverse".as_ptr(),
71 func: Some(str_reverse),
72 },
73 LuaLReg {
74 name: c"sub".as_ptr(),
75 func: Some(str_sub),
76 },
77 LuaLReg {
78 name: c"upper".as_ptr(),
79 func: Some(str_upper),
80 },
81 LuaLReg {
82 name: c"split".as_ptr(),
83 func: Some(str_split),
84 },
85 LuaLReg {
86 name: c"pack".as_ptr(),
87 func: Some(str_pack),
88 },
89 LuaLReg {
90 name: c"packsize".as_ptr(),
91 func: Some(str_packsize),
92 },
93 LuaLReg {
94 name: c"unpack".as_ptr(),
95 func: Some(str_unpack),
96 },
97 LuaLReg {
98 name: core::ptr::null(),
99 func: None,
100 },
101 ];
102
103 lua_l_register(l, c"string".as_ptr(), strlib.as_ptr());
104 createmetatable_mut(l);
105
106 1
107}