(
&mut self,
resolve: &Resolve,
name: &WorldKey,
id: InterfaceId,
_files: &mut Files,
)
| 1250 | } |
| 1251 | |
| 1252 | fn import_interface( |
| 1253 | &mut self, |
| 1254 | resolve: &Resolve, |
| 1255 | name: &WorldKey, |
| 1256 | id: InterfaceId, |
| 1257 | _files: &mut Files, |
| 1258 | ) -> Result<()> { |
| 1259 | let mut to_define = Vec::new(); |
| 1260 | for (name, ty_id) in resolve.interfaces[id].types.iter() { |
| 1261 | let full_name = full_wit_type_name(resolve, *ty_id); |
| 1262 | if let Some(type_gen) = self.with.get(&full_name) { |
| 1263 | // skip type definition generation for remapped types |
| 1264 | if type_gen.generated() { |
| 1265 | to_define.push((name, ty_id)); |
| 1266 | } |
| 1267 | } else { |
| 1268 | to_define.push((name, ty_id)); |
| 1269 | } |
| 1270 | self.generated_types.insert(full_name); |
| 1271 | } |
| 1272 | |
| 1273 | let wasm_import_module = resolve.name_world_key(name); |
| 1274 | let mut r#gen = self.interface( |
| 1275 | Identifier::Interface(id, name), |
| 1276 | &wasm_import_module, |
| 1277 | resolve, |
| 1278 | true, |
| 1279 | ); |
| 1280 | let (snake, module_path) = r#gen.start_append_submodule(name); |
| 1281 | if r#gen.r#gen.interface_names[&id].remapped { |
| 1282 | return Ok(()); |
| 1283 | } |
| 1284 | |
| 1285 | for (name, ty_id) in to_define { |
| 1286 | r#gen.define_type(&name, *ty_id); |
| 1287 | } |
| 1288 | |
| 1289 | r#gen.generate_imports(resolve.interfaces[id].functions.values(), Some(name)); |
| 1290 | |
| 1291 | let docs = &resolve.interfaces[id].docs; |
| 1292 | |
| 1293 | r#gen.finish_append_submodule(&snake, module_path, docs); |
| 1294 | |
| 1295 | Ok(()) |
| 1296 | } |
| 1297 | |
| 1298 | fn import_funcs( |
| 1299 | &mut self, |
nothing calls this directly
no test coverage detected