check_userdata now returns a *mut UserData C struct ptr

This commit is contained in:
William Venner 2021-09-18 19:33:54 +01:00
parent 3b74aa03e8
commit 6fb845afbe
2 changed files with 10 additions and 3 deletions

View File

@ -7,7 +7,6 @@ use crate::lua::*;
pub struct LuaState(pub *mut std::ffi::c_void); pub struct LuaState(pub *mut std::ffi::c_void);
unsafe impl Send for LuaState {} unsafe impl Send for LuaState {}
impl LuaState { impl LuaState {
/// Returns the Lua string as a slice of bytes. /// Returns the Lua string as a slice of bytes.
/// ///
/// **WARNING:** This will CHANGE the type of the value at the given index to a string. /// **WARNING:** This will CHANGE the type of the value at the given index to a string.
@ -272,8 +271,8 @@ impl LuaState {
} }
#[inline] #[inline]
pub unsafe fn check_userdata(&self, arg: i32, name: LuaString) -> *mut c_void { pub unsafe fn check_userdata(&self, arg: i32, name: LuaString) -> *mut UserData {
(LUA_SHARED.lual_checkudata)(*self, arg, name) (LUA_SHARED.lual_checkudata)(*self, arg, name) as *mut _
} }
pub unsafe fn test_userdata(&self, index: i32, name: LuaString) -> bool { pub unsafe fn test_userdata(&self, index: i32, name: LuaString) -> bool {

View File

@ -6,6 +6,14 @@ pub use import::*;
mod lua_state; mod lua_state;
pub use lua_state::LuaState as State; pub use lua_state::LuaState as State;
#[repr(C)]
#[derive(Debug)]
pub struct UserData
{
data: *mut core::ffi::c_void,
r#type: u8
}
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub enum LuaError { pub enum LuaError {
/// Out of memory /// Out of memory