luaur_vm/functions/
dumpobj.rs1use crate::enums::lua_type::lua_Type;
2use crate::functions::dumpbuffer::dumpbuffer;
3use crate::functions::dumpclass::dumpclass;
4use crate::functions::dumpclosure::dumpclosure;
5use crate::functions::dumpobject::dumpobject;
6use crate::functions::dumpproto::dumpproto;
7use crate::functions::dumpstring::dumpstring;
8use crate::functions::dumptable::dumptable;
9use crate::functions::dumpthread::dumpthread;
10use crate::functions::dumpudata::dumpudata;
11use crate::functions::dumpupval::dumpupval;
12use crate::macros::gco_2_buf::gco2buf;
13use crate::macros::gco_2_cl::gco2cl;
14use crate::macros::gco_2_class::gco2class;
15use crate::macros::gco_2_h::gco2h;
16use crate::macros::gco_2_object::gco2object;
17use crate::macros::gco_2_p::gco2p;
18use crate::macros::gco_2_th::gco2th;
19use crate::macros::gco_2_ts::gco2ts;
20use crate::macros::gco_2_u::gco2u;
21use crate::macros::gco_2_uv::gco2uv;
22use crate::records::gc_object::GCObject;
23use luaur_common::macros::luau_assert::LUAU_ASSERT;
24
25#[allow(non_snake_case)]
26pub(crate) unsafe fn dumpobj(f: *mut core::ffi::c_void, o: *mut GCObject) {
27 match (*o).gch.tt as i32 {
28 t if t == lua_Type::LUA_TSTRING as i32 => {
29 dumpstring(f, gco2ts!(o) as *const _ as *mut _);
30 }
31 t if t == lua_Type::LUA_TTABLE as i32 => {
32 dumptable(f, gco2h!(o) as *const _ as *mut _);
33 }
34 t if t == lua_Type::LUA_TFUNCTION as i32 => {
35 dumpclosure(f, gco2cl!(o) as *const _ as *mut _);
36 }
37 t if t == lua_Type::LUA_TUSERDATA as i32 => {
38 dumpudata(f, gco2u!(o) as *const _ as *mut _);
39 }
40 t if t == lua_Type::LUA_TTHREAD as i32 => {
41 dumpthread(f, gco2th!(o) as *const _ as *mut _);
42 }
43 t if t == lua_Type::LUA_TBUFFER as i32 => {
44 dumpbuffer(f, gco2buf!(o) as *const _ as *mut _);
45 }
46 t if t == lua_Type::LUA_TCLASS as i32 => {
47 dumpclass(f, gco2class!(o) as *const _ as *mut _);
48 }
49 t if t == lua_Type::LUA_TOBJECT as i32 => {
50 dumpobject(f, gco2object!(o) as *const _ as *mut _);
51 }
52 t if t == lua_Type::LUA_TPROTO as i32 => {
53 dumpproto(f, gco2p!(o) as *const _ as *mut _);
54 }
55 t if t == lua_Type::LUA_TUPVAL as i32 => {
56 dumpupval(f, gco2uv!(o) as *const _ as *mut _);
57 }
58 _ => {
59 LUAU_ASSERT!(false);
60 }
61 }
62}