luaur_vm/functions/
lua_b_rawlen.rs1use core::ffi::c_int;
2
3use crate::enums::lua_type::lua_Type;
4use crate::functions::lua_objlen::lua_objlen;
5use crate::functions::lua_pushinteger::lua_pushinteger;
6use crate::functions::lua_type::lua_type;
7use crate::macros::lua_l_argcheck::luaL_argcheck;
8use crate::type_aliases::lua_state::lua_State;
9
10#[no_mangle]
11pub unsafe fn lua_b_rawlen(L: *mut lua_State) -> c_int {
12 let tt = lua_type(L, 1);
13
14 luaL_argcheck!(
15 L,
16 tt == lua_Type::LUA_TTABLE as c_int || tt == lua_Type::LUA_TSTRING as c_int,
17 1,
18 "table or string expected"
19 );
20
21 let len = lua_objlen(L, 1);
22 lua_pushinteger(L, len);
23
24 1
25}