pub struct HostFnRegistry { /* private fields */ }Expand description
Phase 0b host-fn registry: import_idx -> Arc<dyn RelonFunction>.
Mirrors the host_fns half of the cranelift backend’s
CapabilityVtable. The LLVM evaluator owns one of these (built via
[Self::with_host_fns]) and points each per-call [ArenaState] at
it through [ArenaState::install_host_fns]; a source-lowered
Op::CallNative then resolves the import_idx-keyed callable via
[relon_llvm_call_native].
Keying off import_idx (the IR-side private namespace) keeps it
distinct from the capability-bit namespace the Op::CheckCap
gate consumes — exactly the cranelift split.
Implementations§
Source§impl HostFnRegistry
impl HostFnRegistry
Trait Implementations§
Source§impl Clone for HostFnRegistry
impl Clone for HostFnRegistry
Source§fn clone(&self) -> HostFnRegistry
fn clone(&self) -> HostFnRegistry
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for HostFnRegistry
impl Debug for HostFnRegistry
Source§impl Default for HostFnRegistry
impl Default for HostFnRegistry
Source§fn default() -> HostFnRegistry
fn default() -> HostFnRegistry
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for HostFnRegistry
impl !UnwindSafe for HostFnRegistry
impl Freeze for HostFnRegistry
impl Send for HostFnRegistry
impl Sync for HostFnRegistry
impl Unpin for HostFnRegistry
impl UnsafeUnpin for HostFnRegistry
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more