(
&mut self,
resolve: &Resolve,
name: &WorldKey,
id: InterfaceId,
_files: &mut Files,
)
| 1313 | } |
| 1314 | |
| 1315 | fn export_interface( |
| 1316 | &mut self, |
| 1317 | resolve: &Resolve, |
| 1318 | name: &WorldKey, |
| 1319 | id: InterfaceId, |
| 1320 | _files: &mut Files, |
| 1321 | ) -> Result<()> { |
| 1322 | let mut to_define = Vec::new(); |
| 1323 | for (ty_name, ty_id) in resolve.interfaces[id].types.iter() { |
| 1324 | let full_name = full_wit_type_name(resolve, *ty_id); |
| 1325 | to_define.push((ty_name, ty_id)); |
| 1326 | self.generated_types.insert(full_name); |
| 1327 | } |
| 1328 | |
| 1329 | let wasm_import_module = format!("[export]{}", resolve.name_world_key(name)); |
| 1330 | let mut r#gen = self.interface( |
| 1331 | Identifier::Interface(id, name), |
| 1332 | &wasm_import_module, |
| 1333 | resolve, |
| 1334 | false, |
| 1335 | ); |
| 1336 | let (snake, module_path) = r#gen.start_append_submodule(name); |
| 1337 | if r#gen.r#gen.interface_names[&id].remapped { |
| 1338 | return Ok(()); |
| 1339 | } |
| 1340 | |
| 1341 | for (ty_name, ty_id) in to_define { |
| 1342 | r#gen.define_type(&ty_name, *ty_id); |
| 1343 | } |
| 1344 | |
| 1345 | let macro_name = |
| 1346 | r#gen.generate_exports(Some((id, name)), resolve.interfaces[id].functions.values())?; |
| 1347 | |
| 1348 | let docs = &resolve.interfaces[id].docs; |
| 1349 | |
| 1350 | r#gen.finish_append_submodule(&snake, module_path, docs); |
| 1351 | self.export_macros |
| 1352 | .push((macro_name, self.interface_names[&id].path.clone())); |
| 1353 | |
| 1354 | if self.opts.stubs { |
| 1355 | let world_id = self.world.unwrap(); |
| 1356 | let mut r#gen = self.interface( |
| 1357 | Identifier::World(world_id), |
| 1358 | &wasm_import_module, |
| 1359 | resolve, |
| 1360 | false, |
| 1361 | ); |
| 1362 | r#gen.generate_stub(Some((id, name)), resolve.interfaces[id].functions.values()); |
| 1363 | let stub = r#gen.finish(); |
| 1364 | self.src.push_str(&stub); |
| 1365 | } |
| 1366 | Ok(()) |
| 1367 | } |
| 1368 | |
| 1369 | fn export_funcs( |
| 1370 | &mut self, |
nothing calls this directly
no test coverage detected