我目前正在与 Rust 和 Cargo 合作一个项目。它运行良好,但我遇到了一个小问题:为了代码重用,我的大部分项目都在一个 lib crate 中。在这个箱子里,很多东西都是私密的。所以当我这样做的时候cargo doc
,我只有公开的、导出的东西的文档……这实际上很棒,因为很容易看出什么是导出的,什么不是。
但我不得不承认:出于开发目的,我错过了整个项目的完整文档......
我目前正在与 Rust 和 Cargo 合作一个项目。它运行良好,但我遇到了一个小问题:为了代码重用,我的大部分项目都在一个 lib crate 中。在这个箱子里,很多东西都是私密的。所以当我这样做的时候cargo doc
,我只有公开的、导出的东西的文档……这实际上很棒,因为很容易看出什么是导出的,什么不是。
但我不得不承认:出于开发目的,我错过了整个项目的完整文档......
默认情况下,二进制文件的文档包括二进制包中的私有项目。
您现在可以使用cargo doc --document-private-items
你今天可能无法用 Cargo 来做,如果你直接使用 rustdoc 有一个解决方法。
运行cargo doc -v
并记下它运行的 rustdoc 命令:
$ cargo doc -v
Compiling docz v0.0.1 (file:///private/tmp/docz)
Running `rustdoc src/lib.rs -o /private/tmp/docz/target/doc --crate-name docz -L dependency=/private/tmp/docz/target/debug -L dependency=/private/tmp/docz/target/debug/deps`
然后,添加--no-defaults --passes strip-hidden --passes collapse-docs --passes unindent-comments
到命令:
rustdoc src/lib.rs -o /private/tmp/docz/target/doc --crate-name docz \
-L dependency=/private/tmp/docz/target/debug \
-L dependency=/private/tmp/docz/target/debug/deps \
--no-defaults \
--passes strip-hidden --passes collapse-docs --passes unindent-comments
使用货物记录私人物品:
cargo doc --document-private-items
这可以通过将参数传递给 rustdoc 来完成--
,例如。
cargo rustdoc -- \
--no-defaults \
--passes strip-hidden \
--passes collapse-docs \
--passes unindent-comments \
--passes strip-priv-imports
根据@Shepmaster 的回答,无需手动复制粘贴。
这现在更简单了,只需使用:
cargo rustdoc -- --document-private-items