MCPcopy Index your code
hub / github.com/explodingcamera/tinywasm / exports

Method exports

crates/tinywasm/src/instance.rs:302–327  ·  view source on GitHub ↗

Returns an iterator over all exported extern values for this instance. ## Example ```rust # fn main() -> tinywasm::Result<()> { # use tinywasm::{ExternItem, ModuleInstance, Store}; # let wasm = wat::parse_str(r#" # (module # (func (export "f")) # (memory (export "mem") 1)) # "#).expect("valid wat"); # let module = tinywasm::parse_bytes(&wasm)?; # let mut store = Store::default();

(&self)

Source from the content-addressed store, hash-verified

300 /// # }
301 /// ```
302 pub fn exports(&self) -> impl Iterator<Item = (&str, ExternItem)> + '_ {
303 self.0.exports.iter().map(move |export| {
304 let item = match export.kind {
305 ExternalKind::Func => {
306 let func_addr = self.resolve_func_addr(export.index);
307 ExternItem::Func(Function {
308 item: crate::StoreItem::new(self.0.store_id, func_addr),
309 module_addr: self.id(),
310 addr: func_addr,
311 ty: self.func_type_by_type_index(self.func_type_idx(export.index)).clone(),
312 })
313 }
314 ExternalKind::Table => {
315 ExternItem::Table(Table::from_store_addr(self.0.store_id, self.resolve_table_addr(export.index)))
316 }
317 ExternalKind::Memory => {
318 ExternItem::Memory(Memory::from_store_addr(self.0.store_id, self.resolve_mem_addr(export.index)))
319 }
320 ExternalKind::Global => {
321 ExternItem::Global(Global::from_store_addr(self.0.store_id, self.resolve_global_addr(export.index)))
322 }
323 };
324
325 (export.name.as_ref(), item)
326 })
327 }
328
329 #[inline]
330 fn require_export(&self, name: &str) -> Result<ExternVal> {

Calls 12

TableClass · 0.85
MemoryClass · 0.85
mapMethod · 0.80
resolve_func_addrMethod · 0.80
func_type_idxMethod · 0.80
resolve_table_addrMethod · 0.80
resolve_mem_addrMethod · 0.80
resolve_global_addrMethod · 0.80
as_refMethod · 0.80
GlobalClass · 0.70
idMethod · 0.45