Skip to content

Commit 6d0120f

Browse files
authored
Rust: Add interface doc comments. (#1090)
Add interface documentation as doc comments for the generated Rust modules.
1 parent 0640625 commit 6d0120f

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

crates/rust/src/interface.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,8 +422,13 @@ macro_rules! {macro_name} {{
422422
(snake, module_path)
423423
}
424424

425-
pub fn finish_append_submodule(mut self, snake: &str, module_path: Vec<String>) {
425+
pub fn finish_append_submodule(mut self, snake: &str, module_path: Vec<String>, docs: &Docs) {
426426
let module = self.finish();
427+
428+
self.rustdoc(docs);
429+
let docs = mem::take(&mut self.src).to_string();
430+
let docs = docs.trim_end();
431+
427432
let path_to_root = self.path_to_root();
428433
let used_static = if self.gen.opts.disable_custom_section_link_helpers {
429434
String::new()
@@ -439,6 +444,7 @@ macro_rules! {macro_name} {{
439444
};
440445
let module = format!(
441446
"\
447+
{docs}
442448
pub mod {snake} {{
443449
{used_static}
444450
{module}

crates/rust/src/lib.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -984,7 +984,9 @@ impl WorldGenerator for RustWasm {
984984

985985
gen.generate_imports(resolve.interfaces[id].functions.values());
986986

987-
gen.finish_append_submodule(&snake, module_path);
987+
let docs = &resolve.interfaces[id].docs;
988+
989+
gen.finish_append_submodule(&snake, module_path, docs);
988990

989991
Ok(())
990992
}
@@ -1022,7 +1024,10 @@ impl WorldGenerator for RustWasm {
10221024
gen.types(id);
10231025
let macro_name =
10241026
gen.generate_exports(Some((id, name)), resolve.interfaces[id].functions.values())?;
1025-
gen.finish_append_submodule(&snake, module_path);
1027+
1028+
let docs = &resolve.interfaces[id].docs;
1029+
1030+
gen.finish_append_submodule(&snake, module_path, docs);
10261031
self.export_macros
10271032
.push((macro_name, self.interface_names[&id].path.clone()));
10281033

0 commit comments

Comments
 (0)