luaur_vm/functions/
class_classof.rs1use crate::functions::lua_a_toobject::luaA_toobject;
2use crate::functions::lua_l_checkany::lua_l_checkany;
3use crate::functions::lua_pushnil::lua_pushnil;
4use crate::macros::lua_isobject::lua_isobject;
5use crate::macros::objectvalue::objectvalue;
6use crate::type_aliases::lua_state::lua_State;
7
8#[no_mangle]
9pub unsafe fn class_classof(L: *mut lua_State) -> core::ffi::c_int {
10 lua_l_checkany(L, 1);
11
12 if !lua_isobject!(L, 1) {
13 lua_pushnil(L);
14 return 1;
15 }
16
17 let inst: *const crate::type_aliases::t_value::TValue = luaA_toobject(L, 1);
18 let ci = objectvalue!(inst);
19 crate::functions::lua_a_pushclass::luaA_pushclass(L, (*ci).lclass);
20 1
21}