luaur_vm/functions/
lua_l_argerror_l.rs1use crate::functions::currfuncname::currfuncname;
2use crate::functions::lua_l_error_l::lua_l_error_l;
3use crate::type_aliases::lua_state::lua_State;
4use core::ffi::c_int;
5
6#[no_mangle]
7pub unsafe fn lua_l_argerror_l(L: *mut lua_State, narg: c_int, extramsg: &str) -> ! {
8 let fname = currfuncname(L);
9
10 if !fname.is_null() {
11 let fname = core::ffi::CStr::from_ptr(fname).to_string_lossy();
12 lua_l_error_l(
13 L,
14 c"invalid argument #%d to '%s' (%s)".as_ptr(),
15 format_args!("invalid argument #{} to '{}' ({})", narg, fname, extramsg),
16 );
17 } else {
18 lua_l_error_l(
19 L,
20 c"invalid argument #%d (%s)".as_ptr(),
21 format_args!("invalid argument #{} ({})", narg, extramsg),
22 );
23 }
24
25 core::hint::unreachable_unchecked()
26}
27
28#[allow(non_snake_case)]
29pub fn luaL_argerrorL(L: *mut lua_State, narg: c_int, extramsg: &str) -> ! {
30 unsafe { lua_l_argerror_l(L, narg, extramsg) }
31}