我有以下 Rust 基准代码。
criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);
Clippy lint 配置在
cargo.toml
[lints]
rust.missing_docs = "warn"
跑步时
cargo clippy --workspace --all-targets
我有以下警告。
warning: missing documentation for a function
--> benches/b.rs:13:1
|
13 | criterion_group!(benches, criterion_benchmark);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
按照 lint 的建议添加文档后。
/// doc
criterion_group!(benches, criterion_benchmark);
警告仍然存在。
warning: unused doc comment
--> benches/b.rs:13:1
|
13 | /// doc
| ^^^^^^^ rustdoc does not generate documentation for macro invocations
我发现记录宏调用是不同的。但我使用的是库提供的。
如何让它发挥作用?
您的宏调用
cargo expand
以下内容:
pub fn benches() {
let mut criterion: ::criterion::Criterion<_> =
::criterion::Criterion::default().configure_from_args();
criterion_benchmark(&mut criterion);
}
fn main() {
benches();
::criterion::Criterion::default()
.configure_from_args()
.final_summary();
}
此处,
benches
函数未记录。记录宏调用并不会记录它生成的函数(考虑生成多个函数的宏的情况;单个文档注释如何涵盖所有函数?)。我看不出有什么方法可以记录生成的函数(除了向 criterion
提交 PR 以向宏添加文档支持之外)。
我的建议是在基准文件的顶部插入
#![allow(missing_docs)]
以免除它们的 lint。