Skip to main content

luaur_vm/functions/
lua_g_methoderror.rs

1//! Node: `cxx:Function:Luau.VM:VM/src/ldebug.cpp:306:luaG_methoderror`
2//! Source: `VM/src/ldebug.cpp:306-311` (hand-ported)
3
4use core::ffi::{c_char, CStr};
5
6use crate::functions::lua_t_objtypename::lua_t_objtypename;
7use crate::macros::getstr::getstr;
8use crate::macros::lua_g_runerror::lua_g_runerror;
9use crate::type_aliases::lua_state::lua_State;
10use crate::type_aliases::t_string::TString;
11use crate::type_aliases::t_value::TValue;
12
13#[allow(non_snake_case)]
14pub unsafe fn lua_g_methoderror(L: *mut lua_State, p1: *const TValue, p2: *const TString) -> ! {
15    let t1: *const c_char = lua_t_objtypename(L, p1);
16
17    lua_g_runerror!(
18        L,
19        "attempt to call missing method '{}' of {}",
20        CStr::from_ptr(getstr(p2)).to_string_lossy(),
21        CStr::from_ptr(t1).to_string_lossy()
22    )
23}
24
25#[allow(non_snake_case)]
26pub unsafe fn luaG_methoderror(L: *mut lua_State, p1: *const TValue, p2: *const TString) -> ! {
27    lua_g_methoderror(L, p1, p2)
28}