2

当我运行时cargo doc,它似乎没有为我的项目中的库生成文档。我正在使用最新版本的 Rust,正如这篇文章所回答的那样:如何在通过 Cargo 生成文档时包含私有模块?

这是我的结构:

- 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.rsinsidemy_service文件夹只是作为一个入口点:

pub mod my_service;

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

这是我运行时生成的文档的屏幕截图cargo doc --open在此处输入图像描述

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

4

1 回答 1

2

一个小得多的例子:

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 生成了该库的文档。如通过 Cargo 生成文档时如何包含私有模块中所述?,记录图书馆时,不包括私人项目。您需要通过--document-private-items标志才能看到它们。

如果您希望记录二进制文件,则需要传递--binor--bins标志。如果你想记录图书馆,你需要传递--lib标志。

于 2021-08-10T14:18:45.837 回答