Skip to main content

UserdataRuntime

Trait UserdataRuntime 

Source
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§

Source

unsafe fn new_userdata_tagged_internal( &self, size: usize, tag: i32, ) -> VmErrorResult<*mut ()>

Source

unsafe fn new_userdata_internal( &self, size: usize, tag: i32, ) -> VmErrorResult<Userdata>

luaU_newudata

Source

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".

Implementors§