Skip to main content

luaur_vm/functions/
class_classof.rs

1use 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}