首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法只在rustdoc验证示例时启用Cargo功能?

有没有办法只在rustdoc验证示例时启用Cargo功能?
EN

Stack Overflow用户
提问于 2017-09-21 04:31:24
回答 2查看 843关注 0票数 2

我在机箱文档中有以下内容:

代码语言:javascript
复制
//! # Examples
//! ```rust,no_run
//! extern crate stm32f103xx;
//! // ...
//! ```

问题是对stm32f103xx机箱的依赖是可选的。如果我默认启用feature stm32f103xx,一切正常,但我不想将其设为默认。有没有办法只在rustdoc验证示例时启用该功能?

EN

回答 2

Stack Overflow用户

发布于 2017-09-21 05:12:35

No。特性是由板条箱的最终用户选择的,您并不是唯一选择运行测试的人。如果你能做到你所要求的,你实际上会强迫任何想要运行测试的人下载并编译“可选的”依赖,使它不是非常可选的。

相反,您可以做的是仅在启用该功能时包含该文档部分。这并不明显,但是文档注释被转换为属性语法(#[doc = "..."])。结合cfg_attr,您可以有条件地包含文档,从而有条件地编译和运行一个示例:

代码语言:javascript
复制
#![cfg_attr(feature = "alpha", doc = "
# Examples
```rust

fn alpha() {}

代码语言:javascript
复制
")]

同样,您也可以在一些文档中使用相反的情况,比如“请查看这个非常棒的特性!”

另请参阅:

票数 4
EN

Stack Overflow用户

发布于 2017-09-21 04:41:18

为了在编译项目的任何部分(包括测试)时始终具有依赖性,Development Dependencies是一个很好的选择。

代码语言:javascript
复制
[dev-dependencies]
stm32f103xx = "0.7.5"

正如你提到的,板条箱也是一个可选的主依赖项,你可以将它保留在你的清单中。

代码语言:javascript
复制
[dependencies]
stm32f103xx = { version = "0.7.5", optional = true }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46331278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档