如何通过Cargo生成文档时包含私有模块?

时间:2015-03-31 20:38:42

标签: rust rust-cargo

我目前正在与Rust和Cargo合作开展一个项目。它运行良好,但我遇到一个小问题:对于代码重用,我的大多数项目都在lib crate中。在这个箱子里,很多东西都是私人的。因此,当我cargo doc时,我只有公共,出口资料的文档......这实际上很棒,因为很容易看到导出的内容和不导出的内容。

但我不得不承认:为了发展目的,我错过了整个项目的完整文档......

4 个答案:

答案 0 :(得分:10)

今天您可能无法使用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

答案 1 :(得分:6)

现在更简单,只需使用:

cargo rustdoc -- --document-private-items

答案 2 :(得分:4)

这可以通过在--之后将参数传递给rustdoc来完成,例如

cargo rustdoc -- \
    --no-defaults \
    --passes strip-hidden \
    --passes collapse-docs \
    --passes unindent-comments \
    --passes strip-priv-imports

根据@ Shepmaster的回答,不需要手动复制粘贴。

答案 3 :(得分:0)

使用货物记录私人物品:

cargo doc --document-private-items