我正在尝试仅为我的面向公众的 API 生成 rustdoc。我希望它包含pub
但不包含pub(crate)
项目。
有没有一种方法可以表明这一点,而不必单独排除每个项目?
pub struct DocumentMe;
// I do not want to have to
// explicitly specify excluding this
#[doc(hidden)]
pub(crate) struct DoNotDocumentMe;
正如 @Chayim Friedman 在评论中发布的那样,这只是二进制板条箱的问题,而不是库板条箱的问题。
从 Rust 1.41 开始,默认情况下会记录二进制 crate 中的私有 API。由于 API 不会导出给任何人(因为这是一个二进制文件),Rust 假设您想要为源代码的使用者记录 API,因此它也记录私有项。
在库包中,您可以更改默认值,还可以使用该
--document-private-items
标志记录私人项目。可悲的是,我认为没有一个选项可以不记录二进制板条箱的私人项目。在更改 Rust 1.41 默认值的 PR 中,据说 PR 可以不带标志来更改默认值,并且如果将来有需要,可以添加这样的标志。我认为这从未发生过。