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

Method generate_add_function_to_linker

crates/wit-bindgen/src/lib.rs:2643–2672  ·  view source on GitHub ↗
(&mut self, owner: TypeOwner, func: &Function, linker: &str)

Source from the content-addressed store, hash-verified

2641 }
2642
2643 fn generate_add_function_to_linker(&mut self, owner: TypeOwner, func: &Function, linker: &str) {
2644 let flags = self.generator.opts.imports.flags(
2645 self.resolve,
2646 self.current_interface.map(|p| p.1),
2647 func,
2648 );
2649 self.all_func_flags |= flags;
2650 let gate = FeatureGate::open(&mut self.src, &func.stability);
2651 uwrite!(
2652 self.src,
2653 "{linker}.{}(\"{}\", ",
2654 if flags.contains(FunctionFlags::ASYNC | FunctionFlags::STORE) {
2655 "func_wrap_concurrent"
2656 } else if flags.contains(FunctionFlags::ASYNC) {
2657 "func_wrap_async"
2658 } else {
2659 "func_wrap"
2660 },
2661 func.name
2662 );
2663 if self.named_import_id.is_some() {
2664 self.src.push_str("{ let id = id.clone(); ");
2665 }
2666 self.generate_guest_import_closure(owner, func, flags);
2667 if self.named_import_id.is_some() {
2668 self.src.push_str("}\n");
2669 }
2670 uwriteln!(self.src, ")?;");
2671 gate.close(&mut self.src);
2672 }
2673
2674 fn generate_guest_import_closure(
2675 &mut self,

Callers 2

world_add_to_linkerMethod · 0.80

Calls 6

flagsMethod · 0.45
mapMethod · 0.45
is_someMethod · 0.45
push_strMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected