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

Method interface_name

crates/go/src/lib.rs:1524–1551  ·  view source on GitHub ↗
(&self, resolve: &Resolve, interface: Option<&WorldKey>)

Source from the content-addressed store, hash-verified

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,

Callers 8

package_for_ownerMethod · 0.45
import_interfaceMethod · 0.45
import_funcsMethod · 0.45
export_interfaceMethod · 0.45
import_typesMethod · 0.45
exportMethod · 0.45
func_nameMethod · 0.45

Calls 2

newFunction · 0.85
iterMethod · 0.45

Tested by

no test coverage detected