Skip to main content

ClassRuntime

Trait ClassRuntime 

Source
pub trait ClassRuntime: Sealed {
    // Required methods
    unsafe fn new_blank_class(&self, name: TString) -> VmErrorResult<Class>;
    unsafe fn add_class_metatable(&self, class: Class) -> VmErrorResult;
    unsafe fn new_class(
        &self,
        name: TString,
        members_to_offset: Table,
        offset_to_member: *mut TString,
        number_of_instance_members: u32,
        number_of_static_members: u32,
    ) -> VmErrorResult<Class>;
    unsafe fn inherit_class(
        &self,
        child: Class,
        parent: Class,
    ) -> VmErrorResult<Class>;
    unsafe fn free_class(&self, class: Class, page: LuaPage);
    unsafe fn free_object(&self, object: Object, page: LuaPage);
    unsafe fn create_object(&self) -> NativeCallResult;
}
Expand description

Unstable class/object allocation capability.

§Safety

Handles and member arrays must be live, correctly tagged records from the same VM. Counts, offsets, allocation sizes, and deallocation pages must match the corresponding class or object layout, with GC barriers preserved.

Required Methods§

Source

unsafe fn new_blank_class(&self, name: TString) -> VmErrorResult<Class>

luaR_newblankclass

Source

unsafe fn add_class_metatable(&self, class: Class) -> VmErrorResult

luaR_addclassmetatable

Source

unsafe fn new_class( &self, name: TString, members_to_offset: Table, offset_to_member: *mut TString, number_of_instance_members: u32, number_of_static_members: u32, ) -> VmErrorResult<Class>

luaR_newclass

Source

unsafe fn inherit_class( &self, child: Class, parent: Class, ) -> VmErrorResult<Class>

luaR_inheritclass

Source

unsafe fn free_class(&self, class: Class, page: LuaPage)

luaR_freeclass

Source

unsafe fn free_object(&self, object: Object, page: LuaPage)

luaR_freeobject

Source

unsafe fn create_object(&self) -> NativeCallResult

luaR_createobject

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§