14

如果您查看docs.rs 上的 Tokio 文档,则会有一个蓝色标记表示必须激活某个功能才能访问此 API:

在此处输入图像描述

我也想为我的箱子启用这个功能,怎么做?

4

2 回答 2

23

坏消息是:它现在只是夜间功能。

好消息是:docs.rs 默认使用 nightly。


要使其正常工作,您只需启用该doc_cfg功能并应用于#doc(cfg)正在记录的项目

#![feature(doc_cfg)]

#[doc(cfg(feature = "macros"))]
pub fn test() {}

因为这是仅夜间功能,您可能不想一直启用它。tokio在其中定义以下内容Cargo.toml以仅在 docs.rs 上启用此功能:

# docs.rs-specific configuration
[package.metadata.docs.rs]
# document all features
all-features = true
# defines the configuration attribute `docsrs`
rustdoc-args = ["--cfg", "docsrs"]

然后他们使用

// only enables the `doc_cfg` feature when
// the `docsrs` configuration attribute is defined
#![cfg_attr(docsrs, feature(doc_cfg))]

#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
pub fn test() {}
于 2020-04-24T21:25:49.953 回答
3

在最新的 nightly 中(可能从 v1.57 开始),您可以使用功能doc_auto_cfg(在PR#90502中合并)并且您不再需要手动标记功能doc,只需像以前一样编写cfg

#![feature(doc_auto_cfg)]

#[cfg(feature = "macros")]
pub fn test() {}

要在本地检查它,请运行cargo +nightly doc --all-features.

如果您想继续对 以外的命令使用 stable cargo doc,您可以:

#![cfg_attr(doc, feature(doc_auto_cfg))]

#[cfg(feature = "macros")]
pub fn test() {}
于 2022-01-30T12:02:26.240 回答