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
标志。
当我 运行 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
标志。