[−][src]Struct wasmtime_runtime::SignatureRegistry
WebAssembly requires that the caller and callee signatures in an indirect call must match. To implement this efficiently, keep a registry of all signatures, shared by all instances, so that call sites can just do an index comparison.
Implementations
impl SignatureRegistry
[src]
pub fn register(
&mut self,
wasm: WasmFuncType,
native: Signature
) -> VMSharedSignatureIndex
[src]
&mut self,
wasm: WasmFuncType,
native: Signature
) -> VMSharedSignatureIndex
Register a signature and return its unique index.
pub fn lookup_native(&self, idx: VMSharedSignatureIndex) -> Option<Signature>
[src]
Looks up a shared native signature within this registry.
Note that for this operation to be semantically correct the idx
must
have previously come from a call to register
of this same object.
pub fn lookup_wasm(&self, idx: VMSharedSignatureIndex) -> Option<WasmFuncType>
[src]
Looks up a shared Wasm signature within this registry.
Note that for this operation to be semantically correct the idx
must
have previously come from a call to register
of this same object.
pub fn lookup_wasm_and_native_signatures(
&self,
idx: VMSharedSignatureIndex
) -> Option<(WasmFuncType, Signature)>
[src]
&self,
idx: VMSharedSignatureIndex
) -> Option<(WasmFuncType, Signature)>
Looks up both a shared Wasm function signature and its associated native
ir::Signature
within this registry.
Note that for this operation to be semantically correct the idx
must
have previously come from a call to register
of this same object.
Trait Implementations
impl Debug for SignatureRegistry
[src]
impl Default for SignatureRegistry
[src]
fn default() -> SignatureRegistry
[src]
Auto Trait Implementations
impl RefUnwindSafe for SignatureRegistry
impl Send for SignatureRegistry
impl Sync for SignatureRegistry
impl Unpin for SignatureRegistry
impl UnwindSafe for SignatureRegistry
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,