use crate::enums::lua_type::lua_Type;
use crate::functions::lua_toboolean::lua_toboolean;
use crate::functions::tag_error::tag_error;
use crate::macros::lua_isboolean::lua_isboolean;
use crate::type_aliases::lua_state::lua_State;
#[no_mangle]
pub unsafe fn lua_l_checkboolean(L: *mut lua_State, narg: core::ffi::c_int) -> core::ffi::c_int {
let is_bool = {
let func: unsafe fn(*mut lua_State, core::ffi::c_int) -> core::ffi::c_int =
core::mem::transmute(crate::functions::lua_type::lua_type as *const core::ffi::c_void);
func(L, narg) == (lua_Type::LUA_TBOOLEAN as core::ffi::c_int)
};
if !is_bool {
tag_error(L, narg, lua_Type::LUA_TBOOLEAN as core::ffi::c_int);
}
let func_toboolean: unsafe fn(*mut lua_State, core::ffi::c_int) -> core::ffi::c_int =
core::mem::transmute(lua_toboolean as *const core::ffi::c_void);
func_toboolean(L, narg)
}