(&self, resolve: &Resolve, interface: Option<&WorldKey>)
| 1522 | } |
| 1523 | |
| 1524 | fn interface_name(&self, resolve: &Resolve, interface: Option<&WorldKey>) -> String { |
| 1525 | match interface { |
| 1526 | Some(WorldKey::Name(name)) => name.to_snake_case(), |
| 1527 | Some(WorldKey::Interface(id)) => { |
| 1528 | let interface = &resolve.interfaces[*id]; |
| 1529 | let package = &resolve.packages[interface.package.unwrap()]; |
| 1530 | let package_has_multiple_versions = resolve.packages.iter().any(|(_, p)| { |
| 1531 | p.name.namespace == package.name.namespace |
| 1532 | && p.name.name == package.name.name |
| 1533 | && p.name.version != package.name.version |
| 1534 | }); |
| 1535 | let version = if package_has_multiple_versions || self.opts.include_versions { |
| 1536 | if let Some(version) = &package.name.version { |
| 1537 | format!("{}_", version.to_string().replace(['.', '-', '+'], "_")) |
| 1538 | } else { |
| 1539 | String::new() |
| 1540 | } |
| 1541 | } else { |
| 1542 | String::new() |
| 1543 | }; |
| 1544 | let namespace = package.name.namespace.to_snake_case(); |
| 1545 | let package = package.name.name.to_snake_case(); |
| 1546 | let interface = interface.name.as_ref().unwrap().to_snake_case(); |
| 1547 | format!("{namespace}_{package}_{version}{interface}") |
| 1548 | } |
| 1549 | None => "wit_world".into(), |
| 1550 | } |
| 1551 | } |
| 1552 | |
| 1553 | fn func_name( |
| 1554 | &self, |
no test coverage detected