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

标签 rust rustdoc

当我运行 cargo doc ,它似乎没有为我的项目中的库生成文档。我正在使用最新版本的 Rust,正如这篇文章所回答的那样:How can I include private modules when generating documentation via 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.rs里面 my_service文件夹只是作为一个入口点:
pub mod my_service;
此代码编译并成功执行,但我不确定为什么文档没有正确生成。
这是我运行 cargo doc --open 时生成的文档的屏幕截图:
enter image description here
我找不到 MyService记录在任何地方...(单击“结构”链接只会跳转到主页上的 anchor )

最佳答案

一个小得多的例子:
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 生成了该库的文档。如 How can I include private modules when generating documentation via Cargo? 中所述,记录图书馆时,不包括私有(private)项目。您需要通过 --document-private-items旗帜看到他们。
如果你想记录二进制文件,你需要传递 --bin--bins旗帜。如果你想记录图书馆,你需要通过 --lib旗帜。

关于rust - Cargo doc 不会为既是库又是二进制的项目中的私有(private)项目生成文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68728262/

相关文章:

random - 为什么这个 rand use 语句在 rust 中起作用?

rust - 对我的可写类型使用 fmt::Write 或 io::Write trait?

generics - 用泛型全面实现特征

macros - 如何在 Rust 中向宏文档添加示例?

rust - 如何在 `cargo doc` 生成的文档中获取功能需求标签?

rust - 你如何记录函数参数?

rust - 如何防止 `rust doc` 向文档添加依赖项?

unix - Tokio FramedRead.for_each 无限期调用单个响应

rust - 如何根据其中一个Vecs的值对两个Vecs进行联合排序?

rust - 生成 rustdoc 时如何使用本地文件作为 crate Logo ?