MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / resource

Method resource

crates/wasmtime/src/runtime/component/instance.rs:881–901  ·  view source on GitHub ↗
(&mut self, store: &mut StoreOpaque, resource: &Resource)

Source from the content-addressed store, hash-verified

879 }
880
881 fn resource(&mut self, store: &mut StoreOpaque, resource: &Resource) -> Result<()> {
882 let dtor = resource
883 .dtor
884 .as_ref()
885 .map(|dtor| lookup_vmdef(store, self.id, dtor));
886 let dtor = dtor.map(|export| match export {
887 crate::runtime::vm::Export::Function(f) => f.vm_func_ref(store),
888 _ => unreachable!(),
889 });
890 let index = self
891 .component
892 .env_component()
893 .resource_index(resource.index);
894 let instance = self.instance(store);
895 let ty = ResourceType::guest(store.id(), instance, resource.index);
896 self.instance_mut(store)
897 .set_resource_destructor(index, dtor);
898 let i = self.instance_resource_types_mut(store).push(ty)?;
899 debug_assert_eq!(i, index);
900 Ok(())
901 }
902
903 fn extract_memory(&mut self, store: &mut StoreOpaque, memory: &ExtractMemory) {
904 let import = match lookup_vmexport(store, self.id, &memory.export) {

Callers 1

runMethod · 0.45

Calls 13

lookup_vmdefFunction · 0.85
OkFunction · 0.85
vm_func_refMethod · 0.80
env_componentMethod · 0.80
mapMethod · 0.45
as_refMethod · 0.45
resource_indexMethod · 0.45
instanceMethod · 0.45
idMethod · 0.45
instance_mutMethod · 0.45

Tested by

no test coverage detected