pub struct SignatureRegistry { /* private fields */ }
Expand description
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§
Source§impl SignatureRegistry
impl SignatureRegistry
Sourcepub fn register(&mut self, sig: FunctionTypeRef<'_>) -> VMSharedSignatureIndex
pub fn register(&mut self, sig: FunctionTypeRef<'_>) -> VMSharedSignatureIndex
Register a signature and return its unique index.
Sourcepub fn lookup(&self, idx: VMSharedSignatureIndex) -> Option<&FunctionType>
pub fn lookup(&self, idx: VMSharedSignatureIndex) -> Option<&FunctionType>
Looks up a shared signature index 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§
Auto Trait Implementations§
impl Freeze for SignatureRegistry
impl RefUnwindSafe for SignatureRegistry
impl Send for SignatureRegistry
impl Sync for SignatureRegistry
impl Unpin for SignatureRegistry
impl UnwindSafe for SignatureRegistry
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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