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

Method export_interface

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

Source from the content-addressed store, hash-verified

255 }
256
257 fn export_interface(
258 &mut self,
259 resolve: &Resolve,
260 name: &WorldKey,
261 id: InterfaceId,
262 _files: &mut Files,
263 ) -> Result<()> {
264 let mut r#gen = self.interface(resolve, false, None);
265 r#gen.interface = Some((id, name));
266 r#gen.define_interface_types(id);
267
268 for (i, (_name, func)) in resolve.interfaces[id].functions.iter().enumerate() {
269 if i == 0 {
270 let name = resolve.name_world_key(name);
271 uwriteln!(r#gen.src.h_fns, "\n// Exported Functions from `{name}`");
272 uwriteln!(r#gen.src.c_fns, "\n// Exported Functions from `{name}`");
273 }
274 r#gen.export(func, Some(name));
275 }
276
277 r#gen.r#gen.src.append(&r#gen.src);
278 Ok(())
279 }
280
281 fn export_funcs(
282 &mut self,

Callers 1

generateMethod · 0.45

Calls 5

appendMethod · 0.80
interfaceMethod · 0.45
iterMethod · 0.45
exportMethod · 0.45

Tested by

no test coverage detected