Skip to main content

luaur_common/enums/
luau_builtin_function.rs

1#[allow(non_camel_case_types)]
2#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
3#[repr(u8)]
4pub enum LuauBuiltinFunction {
5    LBF_NONE = 0,
6
7    // assert()
8    LBF_ASSERT,
9
10    // math.
11    LBF_MATH_ABS,
12    LBF_MATH_ACOS,
13    LBF_MATH_ASIN,
14    LBF_MATH_ATAN2,
15    LBF_MATH_ATAN,
16    LBF_MATH_CEIL,
17    LBF_MATH_COSH,
18    LBF_MATH_COS,
19    LBF_MATH_DEG,
20    LBF_MATH_EXP,
21    LBF_MATH_FLOOR,
22    LBF_MATH_FMOD,
23    LBF_MATH_FREXP,
24    LBF_MATH_LDEXP,
25    LBF_MATH_LOG10,
26    LBF_MATH_LOG,
27    LBF_MATH_MAX,
28    LBF_MATH_MIN,
29    LBF_MATH_MODF,
30    LBF_MATH_POW,
31    LBF_MATH_RAD,
32    LBF_MATH_SINH,
33    LBF_MATH_SIN,
34    LBF_MATH_SQRT,
35    LBF_MATH_TANH,
36    LBF_MATH_TAN,
37
38    // bit32.
39    LBF_BIT32_ARSHIFT,
40    LBF_BIT32_BAND,
41    LBF_BIT32_BNOT,
42    LBF_BIT32_BOR,
43    LBF_BIT32_BXOR,
44    LBF_BIT32_BTEST,
45    LBF_BIT32_EXTRACT,
46    LBF_BIT32_LROTATE,
47    LBF_BIT32_LSHIFT,
48    LBF_BIT32_REPLACE,
49    LBF_BIT32_RROTATE,
50    LBF_BIT32_RSHIFT,
51
52    // type()
53    LBF_TYPE,
54
55    // string.
56    LBF_STRING_BYTE,
57    LBF_STRING_CHAR,
58    LBF_STRING_LEN,
59
60    // typeof()
61    LBF_TYPEOF,
62
63    // string.
64    LBF_STRING_SUB,
65
66    // math.
67    LBF_MATH_CLAMP,
68    LBF_MATH_SIGN,
69    LBF_MATH_ROUND,
70
71    // raw*
72    LBF_RAWSET,
73    LBF_RAWGET,
74    LBF_RAWEQUAL,
75
76    // table.
77    LBF_TABLE_INSERT,
78    LBF_TABLE_UNPACK,
79
80    // vector ctor
81    LBF_VECTOR,
82
83    // bit32.count
84    LBF_BIT32_COUNTLZ,
85    LBF_BIT32_COUNTRZ,
86
87    // select(_, ...)
88    LBF_SELECT_VARARG,
89
90    // rawlen
91    LBF_RAWLEN,
92
93    // bit32.extract(_, k, k)
94    LBF_BIT32_EXTRACTK,
95
96    // get/setmetatable
97    LBF_GETMETATABLE,
98    LBF_SETMETATABLE,
99
100    // tonumber/tostring
101    LBF_TONUMBER,
102    LBF_TOSTRING,
103
104    // bit32.byteswap(n)
105    LBF_BIT32_BYTESWAP,
106
107    // buffer.
108    LBF_BUFFER_READI8,
109    LBF_BUFFER_READU8,
110    LBF_BUFFER_WRITEU8,
111    LBF_BUFFER_READI16,
112    LBF_BUFFER_READU16,
113    LBF_BUFFER_WRITEU16,
114    LBF_BUFFER_READI32,
115    LBF_BUFFER_READU32,
116    LBF_BUFFER_WRITEU32,
117    LBF_BUFFER_READF32,
118    LBF_BUFFER_WRITEF32,
119    LBF_BUFFER_READF64,
120    LBF_BUFFER_WRITEF64,
121
122    // vector.
123    LBF_VECTOR_MAGNITUDE,
124    LBF_VECTOR_NORMALIZE,
125    LBF_VECTOR_CROSS,
126    LBF_VECTOR_DOT,
127    LBF_VECTOR_FLOOR,
128    LBF_VECTOR_CEIL,
129    LBF_VECTOR_ABS,
130    LBF_VECTOR_SIGN,
131    LBF_VECTOR_CLAMP,
132    LBF_VECTOR_MIN,
133    LBF_VECTOR_MAX,
134
135    // math.lerp
136    LBF_MATH_LERP,
137
138    // vector.lerp
139    LBF_VECTOR_LERP,
140
141    // math.
142    LBF_MATH_ISNAN,
143    LBF_MATH_ISINF,
144    LBF_MATH_ISFINITE,
145
146    // integer
147    LBF_INTEGER_CREATE,
148    LBF_INTEGER_TONUMBER,
149    LBF_INTEGER_NEG,
150    LBF_INTEGER_ADD,
151    LBF_INTEGER_SUB,
152    LBF_INTEGER_MUL,
153    LBF_INTEGER_DIV,
154    LBF_INTEGER_MIN,
155    LBF_INTEGER_MAX,
156    LBF_INTEGER_REM,
157    LBF_INTEGER_IDIV,
158    LBF_INTEGER_UDIV,
159    LBF_INTEGER_UREM,
160    LBF_INTEGER_MOD,
161    LBF_INTEGER_CLAMP,
162    LBF_INTEGER_BAND,
163    LBF_INTEGER_BOR,
164    LBF_INTEGER_BNOT,
165    LBF_INTEGER_BXOR,
166    LBF_INTEGER_LT,
167    LBF_INTEGER_LE,
168    LBF_INTEGER_ULT,
169    LBF_INTEGER_ULE,
170    LBF_INTEGER_GT,
171    LBF_INTEGER_GE,
172    LBF_INTEGER_UGT,
173    LBF_INTEGER_UGE,
174    LBF_INTEGER_LSHIFT,
175    LBF_INTEGER_RSHIFT,
176    LBF_INTEGER_ARSHIFT,
177    LBF_INTEGER_LROTATE,
178    LBF_INTEGER_RROTATE,
179    LBF_INTEGER_EXTRACT,
180    LBF_INTEGER_BTEST,
181    LBF_INTEGER_COUNTRZ,
182    LBF_INTEGER_COUNTLZ,
183    LBF_INTEGER_BSWAP,
184
185    // buffer.readinteger / buffer.writeinteger (int64_t)
186    LBF_BUFFER_READINTEGER,
187    LBF_BUFFER_WRITEINTEGER,
188}
189
190impl LuauBuiltinFunction {
191    pub const LBF_NONE: Self = Self::LBF_NONE;
192    pub const LBF_ASSERT: Self = Self::LBF_ASSERT;
193    pub const LBF_MATH_ABS: Self = Self::LBF_MATH_ABS;
194    pub const LBF_MATH_ACOS: Self = Self::LBF_MATH_ACOS;
195    pub const LBF_MATH_ASIN: Self = Self::LBF_MATH_ASIN;
196    pub const LBF_MATH_ATAN2: Self = Self::LBF_MATH_ATAN2;
197    pub const LBF_MATH_ATAN: Self = Self::LBF_MATH_ATAN;
198    pub const LBF_MATH_CEIL: Self = Self::LBF_MATH_CEIL;
199    pub const LBF_MATH_COSH: Self = Self::LBF_MATH_COSH;
200    pub const LBF_MATH_COS: Self = Self::LBF_MATH_COS;
201    pub const LBF_MATH_DEG: Self = Self::LBF_MATH_DEG;
202    pub const LBF_MATH_EXP: Self = Self::LBF_MATH_EXP;
203    pub const LBF_MATH_FLOOR: Self = Self::LBF_MATH_FLOOR;
204    pub const LBF_MATH_FMOD: Self = Self::LBF_MATH_FMOD;
205    pub const LBF_MATH_FREXP: Self = Self::LBF_MATH_FREXP;
206    pub const LBF_MATH_LDEXP: Self = Self::LBF_MATH_LDEXP;
207    pub const LBF_MATH_LOG10: Self = Self::LBF_MATH_LOG10;
208    pub const LBF_MATH_LOG: Self = Self::LBF_MATH_LOG;
209    pub const LBF_MATH_MAX: Self = Self::LBF_MATH_MAX;
210    pub const LBF_MATH_MIN: Self = Self::LBF_MATH_MIN;
211    pub const LBF_MATH_MODF: Self = Self::LBF_MATH_MODF;
212    pub const LBF_MATH_POW: Self = Self::LBF_MATH_POW;
213    pub const LBF_MATH_RAD: Self = Self::LBF_MATH_RAD;
214    pub const LBF_MATH_SINH: Self = Self::LBF_MATH_SINH;
215    pub const LBF_MATH_SIN: Self = Self::LBF_MATH_SIN;
216    pub const LBF_MATH_SQRT: Self = Self::LBF_MATH_SQRT;
217    pub const LBF_MATH_TANH: Self = Self::LBF_MATH_TANH;
218    pub const LBF_MATH_TAN: Self = Self::LBF_MATH_TAN;
219    pub const LBF_BIT32_ARSHIFT: Self = Self::LBF_BIT32_ARSHIFT;
220    pub const LBF_BIT32_BAND: Self = Self::LBF_BIT32_BAND;
221    pub const LBF_BIT32_BNOT: Self = Self::LBF_BIT32_BNOT;
222    pub const LBF_BIT32_BOR: Self = Self::LBF_BIT32_BOR;
223    pub const LBF_BIT32_BXOR: Self = Self::LBF_BIT32_BXOR;
224    pub const LBF_BIT32_BTEST: Self = Self::LBF_BIT32_BTEST;
225    pub const LBF_BIT32_EXTRACT: Self = Self::LBF_BIT32_EXTRACT;
226    pub const LBF_BIT32_LROTATE: Self = Self::LBF_BIT32_LROTATE;
227    pub const LBF_BIT32_LSHIFT: Self = Self::LBF_BIT32_LSHIFT;
228    pub const LBF_BIT32_REPLACE: Self = Self::LBF_BIT32_REPLACE;
229    pub const LBF_BIT32_RROTATE: Self = Self::LBF_BIT32_RROTATE;
230    pub const LBF_BIT32_RSHIFT: Self = Self::LBF_BIT32_RSHIFT;
231    pub const LBF_TYPE: Self = Self::LBF_TYPE;
232    pub const LBF_STRING_BYTE: Self = Self::LBF_STRING_BYTE;
233    pub const LBF_STRING_CHAR: Self = Self::LBF_STRING_CHAR;
234    pub const LBF_STRING_LEN: Self = Self::LBF_STRING_LEN;
235    pub const LBF_TYPEOF: Self = Self::LBF_TYPEOF;
236    pub const LBF_STRING_SUB: Self = Self::LBF_STRING_SUB;
237    pub const LBF_MATH_CLAMP: Self = Self::LBF_MATH_CLAMP;
238    pub const LBF_MATH_SIGN: Self = Self::LBF_MATH_SIGN;
239    pub const LBF_MATH_ROUND: Self = Self::LBF_MATH_ROUND;
240    pub const LBF_RAWSET: Self = Self::LBF_RAWSET;
241    pub const LBF_RAWGET: Self = Self::LBF_RAWGET;
242    pub const LBF_RAWEQUAL: Self = Self::LBF_RAWEQUAL;
243    pub const LBF_TABLE_INSERT: Self = Self::LBF_TABLE_INSERT;
244    pub const LBF_TABLE_UNPACK: Self = Self::LBF_TABLE_UNPACK;
245    pub const LBF_VECTOR: Self = Self::LBF_VECTOR;
246    pub const LBF_BIT32_COUNTLZ: Self = Self::LBF_BIT32_COUNTLZ;
247    pub const LBF_BIT32_COUNTRZ: Self = Self::LBF_BIT32_COUNTRZ;
248    pub const LBF_SELECT_VARARG: Self = Self::LBF_SELECT_VARARG;
249    pub const LBF_RAWLEN: Self = Self::LBF_RAWLEN;
250    pub const LBF_BIT32_EXTRACTK: Self = Self::LBF_BIT32_EXTRACTK;
251    pub const LBF_GETMETATABLE: Self = Self::LBF_GETMETATABLE;
252    pub const LBF_SETMETATABLE: Self = Self::LBF_SETMETATABLE;
253    pub const LBF_TONUMBER: Self = Self::LBF_TONUMBER;
254    pub const LBF_TOSTRING: Self = Self::LBF_TOSTRING;
255    pub const LBF_BIT32_BYTESWAP: Self = Self::LBF_BIT32_BYTESWAP;
256    pub const LBF_BUFFER_READI8: Self = Self::LBF_BUFFER_READI8;
257    pub const LBF_BUFFER_READU8: Self = Self::LBF_BUFFER_READU8;
258    pub const LBF_BUFFER_WRITEU8: Self = Self::LBF_BUFFER_WRITEU8;
259    pub const LBF_BUFFER_READI16: Self = Self::LBF_BUFFER_READI16;
260    pub const LBF_BUFFER_READU16: Self = Self::LBF_BUFFER_READU16;
261    pub const LBF_BUFFER_WRITEU16: Self = Self::LBF_BUFFER_WRITEU16;
262    pub const LBF_BUFFER_READI32: Self = Self::LBF_BUFFER_READI32;
263    pub const LBF_BUFFER_READU32: Self = Self::LBF_BUFFER_READU32;
264    pub const LBF_BUFFER_WRITEU32: Self = Self::LBF_BUFFER_WRITEU32;
265    pub const LBF_BUFFER_READF32: Self = Self::LBF_BUFFER_READF32;
266    pub const LBF_BUFFER_WRITEF32: Self = Self::LBF_BUFFER_WRITEF32;
267    pub const LBF_BUFFER_READF64: Self = Self::LBF_BUFFER_READF64;
268    pub const LBF_BUFFER_WRITEF64: Self = Self::LBF_BUFFER_WRITEF64;
269    pub const LBF_VECTOR_MAGNITUDE: Self = Self::LBF_VECTOR_MAGNITUDE;
270    pub const LBF_VECTOR_NORMALIZE: Self = Self::LBF_VECTOR_NORMALIZE;
271    pub const LBF_VECTOR_CROSS: Self = Self::LBF_VECTOR_CROSS;
272    pub const LBF_VECTOR_DOT: Self = Self::LBF_VECTOR_DOT;
273    pub const LBF_VECTOR_FLOOR: Self = Self::LBF_VECTOR_FLOOR;
274    pub const LBF_VECTOR_CEIL: Self = Self::LBF_VECTOR_CEIL;
275    pub const LBF_VECTOR_ABS: Self = Self::LBF_VECTOR_ABS;
276    pub const LBF_VECTOR_SIGN: Self = Self::LBF_VECTOR_SIGN;
277    pub const LBF_VECTOR_CLAMP: Self = Self::LBF_VECTOR_CLAMP;
278    pub const LBF_VECTOR_MIN: Self = Self::LBF_VECTOR_MIN;
279    pub const LBF_VECTOR_MAX: Self = Self::LBF_VECTOR_MAX;
280    pub const LBF_MATH_LERP: Self = Self::LBF_MATH_LERP;
281    pub const LBF_VECTOR_LERP: Self = Self::LBF_VECTOR_LERP;
282    pub const LBF_MATH_ISNAN: Self = Self::LBF_MATH_ISNAN;
283    pub const LBF_MATH_ISINF: Self = Self::LBF_MATH_ISINF;
284    pub const LBF_MATH_ISFINITE: Self = Self::LBF_MATH_ISFINITE;
285    pub const LBF_INTEGER_CREATE: Self = Self::LBF_INTEGER_CREATE;
286    pub const LBF_INTEGER_TONUMBER: Self = Self::LBF_INTEGER_TONUMBER;
287    pub const LBF_INTEGER_NEG: Self = Self::LBF_INTEGER_NEG;
288    pub const LBF_INTEGER_ADD: Self = Self::LBF_INTEGER_ADD;
289    pub const LBF_INTEGER_SUB: Self = Self::LBF_INTEGER_SUB;
290    pub const LBF_INTEGER_MUL: Self = Self::LBF_INTEGER_MUL;
291    pub const LBF_INTEGER_DIV: Self = Self::LBF_INTEGER_DIV;
292    pub const LBF_INTEGER_MIN: Self = Self::LBF_INTEGER_MIN;
293    pub const LBF_INTEGER_MAX: Self = Self::LBF_INTEGER_MAX;
294    pub const LBF_INTEGER_REM: Self = Self::LBF_INTEGER_REM;
295    pub const LBF_INTEGER_IDIV: Self = Self::LBF_INTEGER_IDIV;
296    pub const LBF_INTEGER_UDIV: Self = Self::LBF_INTEGER_UDIV;
297    pub const LBF_INTEGER_UREM: Self = Self::LBF_INTEGER_UREM;
298    pub const LBF_INTEGER_MOD: Self = Self::LBF_INTEGER_MOD;
299    pub const LBF_INTEGER_CLAMP: Self = Self::LBF_INTEGER_CLAMP;
300    pub const LBF_INTEGER_BAND: Self = Self::LBF_INTEGER_BAND;
301    pub const LBF_INTEGER_BOR: Self = Self::LBF_INTEGER_BOR;
302    pub const LBF_INTEGER_BNOT: Self = Self::LBF_INTEGER_BNOT;
303    pub const LBF_INTEGER_BXOR: Self = Self::LBF_INTEGER_BXOR;
304    pub const LBF_INTEGER_LT: Self = Self::LBF_INTEGER_LT;
305    pub const LBF_INTEGER_LE: Self = Self::LBF_INTEGER_LE;
306    pub const LBF_INTEGER_ULT: Self = Self::LBF_INTEGER_ULT;
307    pub const LBF_INTEGER_ULE: Self = Self::LBF_INTEGER_ULE;
308    pub const LBF_INTEGER_GT: Self = Self::LBF_INTEGER_GT;
309    pub const LBF_INTEGER_GE: Self = Self::LBF_INTEGER_GE;
310    pub const LBF_INTEGER_UGT: Self = Self::LBF_INTEGER_UGT;
311    pub const LBF_INTEGER_UGE: Self = Self::LBF_INTEGER_UGE;
312    pub const LBF_INTEGER_LSHIFT: Self = Self::LBF_INTEGER_LSHIFT;
313    pub const LBF_INTEGER_RSHIFT: Self = Self::LBF_INTEGER_RSHIFT;
314    pub const LBF_INTEGER_ARSHIFT: Self = Self::LBF_INTEGER_ARSHIFT;
315    pub const LBF_INTEGER_LROTATE: Self = Self::LBF_INTEGER_LROTATE;
316    pub const LBF_INTEGER_RROTATE: Self = Self::LBF_INTEGER_RROTATE;
317    pub const LBF_INTEGER_EXTRACT: Self = Self::LBF_INTEGER_EXTRACT;
318    pub const LBF_INTEGER_BTEST: Self = Self::LBF_INTEGER_BTEST;
319    pub const LBF_INTEGER_COUNTRZ: Self = Self::LBF_INTEGER_COUNTRZ;
320    pub const LBF_INTEGER_COUNTLZ: Self = Self::LBF_INTEGER_COUNTLZ;
321    pub const LBF_INTEGER_BSWAP: Self = Self::LBF_INTEGER_BSWAP;
322    pub const LBF_BUFFER_READINTEGER: Self = Self::LBF_BUFFER_READINTEGER;
323    pub const LBF_BUFFER_WRITEINTEGER: Self = Self::LBF_BUFFER_WRITEINTEGER;
324}