Skip to main content

FunctionRuntime

Trait FunctionRuntime 

Source
pub trait FunctionRuntime: Sealed {
    // Required methods
    unsafe fn find_upvalue(&self, level: TValue) -> VmErrorResult<UpVal>;
    unsafe fn close(&self, level: TValue);
    unsafe fn close_upvalue(&self, upvalue: UpVal, dead: bool);
    unsafe fn record_hit(
        &self,
        caller: Closure,
        target: Closure,
        slot_id: u32,
    ) -> bool;
    unsafe fn new_proto(&self) -> VmErrorResult<Proto>;
    unsafe fn new_lua_closure(
        &self,
        element_count: i32,
        environment: Option<Table>,
        proto: Proto,
    ) -> VmErrorResult<Closure>;
    unsafe fn new_native_closure(
        &self,
        element_count: i32,
        environment: Option<Table>,
    ) -> VmErrorResult<Closure>;
    unsafe fn free_proto(&self, proto: Proto, page: LuaPage);
    unsafe fn free_closure(&self, closure: Closure, page: LuaPage);
    unsafe fn free_upvalue(&self, upvalue: UpVal, page: LuaPage);
}
Expand description

Unstable function-object allocation and lifetime capability.

§Safety

Function, upvalue, page, and stack handles must be live and belong to this thread’s VM. Counts and sizes must match their layouts, and callers must preserve rooting, open-upvalue ordering, and GC barriers.

Required Methods§

Source

unsafe fn find_upvalue(&self, level: TValue) -> VmErrorResult<UpVal>

luaF_findupval

Source

unsafe fn close(&self, level: TValue)

luaF_close

Source

unsafe fn close_upvalue(&self, upvalue: UpVal, dead: bool)

luaF_closeupval

Source

unsafe fn record_hit( &self, caller: Closure, target: Closure, slot_id: u32, ) -> bool

luaF_recordhit

Source

unsafe fn new_proto(&self) -> VmErrorResult<Proto>

luaF_newproto

Source

unsafe fn new_lua_closure( &self, element_count: i32, environment: Option<Table>, proto: Proto, ) -> VmErrorResult<Closure>

luaF_newLclosure

Source

unsafe fn new_native_closure( &self, element_count: i32, environment: Option<Table>, ) -> VmErrorResult<Closure>

luaF_newCclosure

Source

unsafe fn free_proto(&self, proto: Proto, page: LuaPage)

luaF_freeproto

Source

unsafe fn free_closure(&self, closure: Closure, page: LuaPage)

luaF_freeclosure

Source

unsafe fn free_upvalue(&self, upvalue: UpVal, page: LuaPage)

luaF_freeupval

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§