Rust 如何在通过Cargo生成文档时包含专用模块?

Rust 如何在通过Cargo生成文档时包含专用模块?,rust,rust-cargo,Rust,Rust Cargo,我目前正在做一个关于生锈和货物的项目。它工作得很好,但我遇到了一个小问题:对于代码重用,我的大多数项目都在一个lib板条箱中。在这个箱子里,很多东西都是私人的。所以,当我做货物单据时,我只有公共的、导出的文档。。。这实际上很好,因为很容易看到哪些是导出的,哪些不是 但我必须承认:我错过了整个项目的完整文档,用于开发目的 默认情况下,二进制文件的文档包括二进制文件箱中的私有项目 您现在可以使用cargo doc--记录私人物品 以前的版本 今天您可能无法处理货物,如果您直接使用rustdoc,则有

我目前正在做一个关于生锈和货物的项目。它工作得很好,但我遇到了一个小问题:对于代码重用,我的大多数项目都在一个lib板条箱中。在这个箱子里,很多东西都是私人的。所以,当我做
货物单据时,我只有公共的、导出的文档。。。这实际上很好,因为很容易看到哪些是导出的,哪些不是

但我必须承认:我错过了整个项目的完整文档,用于开发目的

默认情况下,二进制文件的文档包括二进制文件箱中的私有项目

您现在可以使用
cargo doc--记录私人物品

以前的版本 今天您可能无法处理货物,如果您直接使用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`
然后,向命令添加
--无默认值--passs strip hidden--passs collapse docs--passs 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 doc --document-private-items

如果您不想显示转口,您还需要添加
--passes strip priv imports
rustdoc
需要针对实际的软件包运行,因此无法使用。最好使用
cargo doc--document private items
,这也适用于虚拟舱单。
警告:“无默认值”标志被视为不推荐使用的标志
。对于
过程
,相同。警告建议您在项目中添加一个
.cargo/config
文件,如果您希望它是默认的:
[build]rustdocflags=[“--document private items”]
现在不是最好的解决方案。考虑用一个更新的解决方案接受不同的答案。