Cargo doc 不会为既是库又是二进制的项目中的私有项生成文档

Cargo doc does not generate documentation for private items in a project that is both a library and binary

当我 运行 cargo doc 时,它似乎没有为我的项目中的库生成文档。我正在使用最新版本的 Rust,正如这个 post:

所回答的

这是我的结构:

- services/
    - mod.rs
    - my_service.rs
- lib.rs
- main.rs

main.rs 仅包含要启动的“主要”功能:

use test_doc::Core;

fn main() {
    Core::start();
}

lib.rs 包含实际逻辑:

mod services;

/// Core process
pub struct Core;

impl Core {
    pub fn start() -> ! {
        loop {
            // do stuff here    
        }
    }
}

然后my_service.rs包含更多逻辑:

/// My service should do stuff
pub struct MyService;

impl MyService {
    /// This function actually does stuff
    pub fn do_stuff(&self) -> &'static str {
        "doing stuff"
    }
}

mod.rs inside my_service 文件夹仅用作入口点:

pub mod my_service;

这段代码编译并执行成功,但我不确定为什么没有正确生成文档。

这是我运行cargo doc --open时生成的文档的截图:

我在任何地方都找不到 MyService 的文档...(单击“结构”link 只会跳转到主页上的一个锚点)

一个更小的例子:

src/main.rs

//! THE BINARY

fn main() {}

src/lib.rs

//! THE LIBRARY

/// You can't see me
fn private() {}

当我 运行 cargo doc 时,我看到 macOS 上的 Rust 1.55 为库 生成了文档 。如 中所述,在记录库时,不包括私人项目。您需要传递 --document-private-items 标志才能看到它们。

如果您希望记录 二进制文件,您需要传递 --bin--bins 标志。如果您想记录 ,您需要传递 --lib 标志。