Cargo 中的全局特征门

Global feature gates in Cargo

我想为我的整个 Cargo 项目启用功能门控。例如,我想将 #![feature(non_ascii_idents)] 添加到每个源文件中。在 Cargo.toml 中是否有列出它们的地方?

不,尽管您没有向每个源文件添加功能门;它们是 crate 属性。也就是说,您将它们放在板条箱上,而不是每个模块上。

有两种类型的属性:

  • 文件属性(以#开头)。它们仅适用于整个文件。
  • crate 属性(以 #! 开头)。它们一次应用于整个板条箱。

您想要的 (#![feature(non_ascii_idents)]) 是一个 crate 属性,因此您需要将它一次放在 crate 的 主文件 的顶部。该主文件通常是:

  • src/main.rs 对于二进制文件
  • src/lib.rs 图书馆