通过 Cargo 生成文档时如何包含私有模块?
How can I include private modules when generating documentation via Cargo?
我目前正在使用 Rust 和 Cargo 进行一个项目。它运行良好,但我遇到了一个小问题:为了代码重用,我的大部分项目都在一个 lib crate 中。在这个箱子里,很多东西都是私人的。所以当我做 cargo doc
时,我只有 public 的文档,导出的东西......这实际上很棒,因为很容易看出什么是导出的,什么不是。
但我不得不承认:我错过了整个项目的完整文档,用于开发目的...
Rust 1.41
二进制文件的文档默认包含二进制包中的私有项目。
Rust 1.29
您现在可以使用 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
这可以通过在 --
之后将参数传递给 rustdoc 来完成,例如
cargo rustdoc -- \
--no-defaults \
--passes strip-hidden \
--passes collapse-docs \
--passes unindent-comments \
--passes strip-priv-imports
根据@Shepmaster 的回答,无需手动复制粘贴。
现在更简单了,只需使用:
cargo rustdoc -- --document-private-items
使用 cargo 来记录私人物品:
cargo doc --document-private-items
我目前正在使用 Rust 和 Cargo 进行一个项目。它运行良好,但我遇到了一个小问题:为了代码重用,我的大部分项目都在一个 lib crate 中。在这个箱子里,很多东西都是私人的。所以当我做 cargo doc
时,我只有 public 的文档,导出的东西......这实际上很棒,因为很容易看出什么是导出的,什么不是。
但我不得不承认:我错过了整个项目的完整文档,用于开发目的...
Rust 1.41
二进制文件的文档默认包含二进制包中的私有项目。
Rust 1.29
您现在可以使用 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
这可以通过在 --
之后将参数传递给 rustdoc 来完成,例如
cargo rustdoc -- \
--no-defaults \
--passes strip-hidden \
--passes collapse-docs \
--passes unindent-comments \
--passes strip-priv-imports
根据@Shepmaster 的回答,无需手动复制粘贴。
现在更简单了,只需使用:
cargo rustdoc -- --document-private-items
使用 cargo 来记录私人物品:
cargo doc --document-private-items