pub struct AotNativeFn { /* private fields */ }Expand description
One AOT-native function: the resolved symbol address, its arity, the Library it
lives in (kept alive), and a call counter for observability/tests. Send + Sync
because the address is immutable and the code is read-only once loaded.
Implementations§
Source§impl AotNativeFn
impl AotNativeFn
Sourcepub fn call_count(&self) -> u64
pub fn call_count(&self) -> u64
Number of times this AOT function has been invoked (observability/tests).
Trait Implementations§
Source§impl NativeFn for AotNativeFn
impl NativeFn for AotNativeFn
Source§fn call(&self, args: &[i64], _pins: &[i64], _depth: usize) -> NativeOutcome
fn call(&self, args: &[i64], _pins: &[i64], _depth: usize) -> NativeOutcome
args are the marshalled parameter slots (scalars by value, floats
as bits, list params as don’t-care placeholders); pins are the
pre-extracted [vec_handle, ptr, len] triples, one per list
parameter in declaration order, landing in the frame’s pin slots.Source§fn ret(&self) -> NativeRet
fn ret(&self) -> NativeRet
How the result re-boxes: a scalar from the raw i64, or the IDENTITY
of one of the caller’s list arguments (return-by-parameter).
Source§fn published_regc(&self) -> i64
fn published_regc(&self) -> i64
The regcount value to PUBLISH next to the entry pointer:
frame_size − 3, which the call stencil’s bound math and limit
planting are calibrated against (the plain register count for the
classic layout).impl Send for AotNativeFn
impl Sync for AotNativeFn
Auto Trait Implementations§
impl Freeze for AotNativeFn
impl RefUnwindSafe for AotNativeFn
impl Unpin for AotNativeFn
impl UnsafeUnpin for AotNativeFn
impl UnwindSafe for AotNativeFn
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.