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

Method import_interface

crates/go/src/lib.rs:733–764  ·  view source on GitHub ↗
(
        &mut self,
        resolve: &Resolve,
        name: &WorldKey,
        id: InterfaceId,
        _files: &mut Files,
    )

Source from the content-addressed store, hash-verified

731 }
732
733 fn import_interface(
734 &mut self,
735 resolve: &Resolve,
736 name: &WorldKey,
737 id: InterfaceId,
738 _files: &mut Files,
739 ) -> Result<()> {
740 if let WorldKey::Name(_) = name {
741 self.interface_names.insert(id, name.clone());
742 }
743
744 let mut data = {
745 let mut generator = InterfaceGenerator::new(self, resolve, Some((id, name)), true);
746 for (name, ty) in resolve.interfaces[id].types.iter() {
747 if !generator.generator.types.contains(ty) {
748 generator.generator.types.insert(*ty);
749 generator.define_type(name, *ty);
750 }
751 }
752 InterfaceData::from(generator)
753 };
754
755 for (_, func) in &resolve.interfaces[id].functions {
756 data.extend(self.import(resolve, func, Some(name)));
757 }
758 self.interfaces
759 .entry(self.interface_name(resolve, Some(name)))
760 .or_default()
761 .extend(data);
762
763 Ok(())
764 }
765
766 fn import_funcs(
767 &mut self,

Callers

nothing calls this directly

Calls 7

newFunction · 0.85
extendMethod · 0.80
insertMethod · 0.45
iterMethod · 0.45
define_typeMethod · 0.45
importMethod · 0.45
interface_nameMethod · 0.45

Tested by

no test coverage detected