pub trait UserdataRuntime: Sealed {
// Required methods
unsafe fn new_userdata_tagged_internal(
&self,
size: usize,
tag: i32,
) -> VmErrorResult<*mut ()>;
unsafe fn new_userdata_internal(
&self,
size: usize,
tag: i32,
) -> VmErrorResult<Userdata>;
unsafe fn free_userdata(&self, userdata: Userdata, page: LuaPage);
}Expand description
Unstable userdata allocation and destruction capability.
§Safety
The thread, userdata, and page handles must be live and belong to the same VM. Tags, payload sizes, destructor storage, and deallocation pages must match the original allocation, with rooting and GC barriers preserved.
Required Methods§
unsafe fn new_userdata_tagged_internal( &self, size: usize, tag: i32, ) -> VmErrorResult<*mut ()>
Sourceunsafe fn new_userdata_internal(
&self,
size: usize,
tag: i32,
) -> VmErrorResult<Userdata>
unsafe fn new_userdata_internal( &self, size: usize, tag: i32, ) -> VmErrorResult<Userdata>
luaU_newudata
Sourceunsafe fn free_userdata(&self, userdata: Userdata, page: LuaPage)
unsafe fn free_userdata(&self, userdata: Userdata, page: LuaPage)
luaU_freeudata
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".