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§
Sourceunsafe fn new_blank_class(&self, name: TString) -> VmErrorResult<Class>
unsafe fn new_blank_class(&self, name: TString) -> VmErrorResult<Class>
luaR_newblankclass
Sourceunsafe fn add_class_metatable(&self, class: Class) -> VmErrorResult
unsafe fn add_class_metatable(&self, class: Class) -> VmErrorResult
luaR_addclassmetatable
Sourceunsafe 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 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
Sourceunsafe fn inherit_class(
&self,
child: Class,
parent: Class,
) -> VmErrorResult<Class>
unsafe fn inherit_class( &self, child: Class, parent: Class, ) -> VmErrorResult<Class>
luaR_inheritclass
Sourceunsafe fn free_class(&self, class: Class, page: LuaPage)
unsafe fn free_class(&self, class: Class, page: LuaPage)
luaR_freeclass
Sourceunsafe fn free_object(&self, object: Object, page: LuaPage)
unsafe fn free_object(&self, object: Object, page: LuaPage)
luaR_freeobject
Sourceunsafe fn create_object(&self) -> NativeCallResult
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".