MCPcopy Create free account
hub / github.com/bytecodealliance/wit-bindgen / export_funcs

Method export_funcs

crates/rust/src/lib.rs:1369–1390  ·  view source on GitHub ↗
(
        &mut self,
        resolve: &Resolve,
        world: WorldId,
        funcs: &[(&str, &Function)],
        _files: &mut Files,
    )

Source from the content-addressed store, hash-verified

1367 }
1368
1369 fn export_funcs(
1370 &mut self,
1371 resolve: &Resolve,
1372 world: WorldId,
1373 funcs: &[(&str, &Function)],
1374 _files: &mut Files,
1375 ) -> Result<()> {
1376 let mut r#gen = self.interface(Identifier::World(world), "[export]$root", resolve, false);
1377 let macro_name = r#gen.generate_exports(None, funcs.iter().map(|f| f.1))?;
1378 let src = r#gen.finish();
1379 self.src.push_str(&src);
1380 self.export_macros.push((macro_name, String::new()));
1381
1382 if self.opts.stubs {
1383 let mut r#gen =
1384 self.interface(Identifier::World(world), "[export]$root", resolve, false);
1385 r#gen.generate_stub(None, funcs.iter().map(|f| f.1));
1386 let stub = r#gen.finish();
1387 self.src.push_str(&stub);
1388 }
1389 Ok(())
1390 }
1391
1392 fn import_types(
1393 &mut self,

Callers

nothing calls this directly

Calls 9

newFunction · 0.85
generate_exportsMethod · 0.80
mapMethod · 0.80
generate_stubMethod · 0.80
interfaceMethod · 0.45
iterMethod · 0.45
finishMethod · 0.45
push_strMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected