pub struct NativeClosure {
pub f: NativeFn,
pub upvals: Box<[Value]>,
pub is_async: bool,
/* private fields */
}Expand description
A native (host) function with captured upvalues — the analogue of PUC C
closures. Builtins are allocated once at registration so identity is
stable; stateful iterators (gmatch) mutate their upvalues via as_mut.
Fields§
§f: NativeFnThe host function pointer this closure dispatches to.
upvals: Box<[Value]>Captured upvalues, visible inside f via the Vm’s call API.
is_async: boolv1.1 B10 Stage 2 — marker bit for async natives. When true,
f is actually an crate::vm::async_drive::AsyncNativeFn
(same pointer width, transmuted at the call site) returning a
Pin<Box<dyn Future>>. The dispatcher’s native-call path checks
this bit and routes through the cooperative-yield mechanism
instead of invoking f synchronously. Default false (sync
native) for all v1.0 / v1.1-Stage-1 construction sites.
Auto Trait Implementations§
impl !RefUnwindSafe for NativeClosure
impl !Send for NativeClosure
impl !Sync for NativeClosure
impl !UnwindSafe for NativeClosure
impl Freeze for NativeClosure
impl Unpin for NativeClosure
impl UnsafeUnpin for NativeClosure
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