#[non_exhaustive]#[repr(C)]pub struct LuaCallbacks {
pub userdata: *mut c_void,
pub interrupt: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState, gc: c_int)>,
pub panic: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState, errcode: LuauStatus)>,
pub userthread: Option<unsafe extern "C-unwind" fn(LP: *mut _LuaState, state: *mut _LuaState)>,
pub useratom: Option<unsafe extern "C-unwind" fn(s: *const c_char, l: usize) -> i16>,
pub debugbreak: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState, ar: *mut LuaDebug)>,
pub debugstep: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState, ar: *mut LuaDebug)>,
pub debuginterrupt: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState, ar: *mut LuaDebug)>,
pub debugprotectederror: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState)>,
pub onallocate: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState, osize: usize, nsize: usize)>,
}Expand description
Callbacks that can be used to reconfigure behavior of the VM dynamically.
These are shared between all coroutines.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.userdata: *mut c_voidarbitrary userdata pointer that is never overwritten by Luau
interrupt: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState, gc: c_int)>gets called at safepoints (loop back edges, call/ret, gc) if set
panic: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState, errcode: LuauStatus)>gets called when an unprotected error is raised (if longjmp is used)
userthread: Option<unsafe extern "C-unwind" fn(LP: *mut _LuaState, state: *mut _LuaState)>gets called when L is created (LP == parent) or destroyed (LP == NULL)
useratom: Option<unsafe extern "C-unwind" fn(s: *const c_char, l: usize) -> i16>gets called when a string is created; returned atom can be retrieved via tostringatom
debugbreak: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState, ar: *mut LuaDebug)>gets called when BREAK instruction is encountered
debugstep: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState, ar: *mut LuaDebug)>gets called after each instruction in single step mode
debuginterrupt: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState, ar: *mut LuaDebug)>gets called when thread execution is interrupted by break in another thread
debugprotectederror: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState)>gets called when protected call results in an error
onallocate: Option<unsafe extern "C-unwind" fn(state: *mut _LuaState, osize: usize, nsize: usize)>gets called when memory is allocated
Auto Trait Implementations§
impl Freeze for LuaCallbacks
impl RefUnwindSafe for LuaCallbacks
impl !Send for LuaCallbacks
impl !Sync for LuaCallbacks
impl Unpin for LuaCallbacks
impl UnsafeUnpin for LuaCallbacks
impl UnwindSafe for LuaCallbacks
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more