Rust: 不要对二进制名称强制执行snake_case

创建于 2017-10-09  ·  3评论  ·  资料来源: rust-lang/rust

目前,如果您有这样的 Cargo.toml:

[package]
name = "some_package"
version = "0.0.0"

[[bin]]
name = "somePackage"
path = "src/main.rs"

rustc 会抱怨:

warning: crate `somePackage` should have a snake case name such as `some_package`
  |
  = note: #[warn(non_snake_case)] on by default

我理解为什么这对于库 crates 是合理的,以强制执行 rust 库和源代码的通用命名约定。 但是对二进制文件强制执行这一点也没有多大意义,因为这样做并没有真正的优势(请注意,板条箱名称不是驼峰命名法,只有二进制名称是)。


$ rustc --version
rustc 1.22.0-nightly (05f8ddc46 2017-10-07)
A-lint C-feature-request

最有用的评论

策略应该适用于可执行文件和 cdylib 的类似文件。

如果您可以只为 crate 名称关闭#[warn(non_snake_case)] ,那也很棒。 如果我在顶层使用#![allow(non_snake_case)] ,则会禁用整个箱子的 lint。

所有3条评论

我实际上一直在研究这个,如果 Rust 团队同意它应该发生的话,我很乐意接受它。

现在,构建二进制文件将[[bin]]::name作为--crate-name参数传递。 我想了两种方法来解决这个问题。

  1. 构建二进制文件时不要强制执行snake_case 规则
  2. 添加一个可选的--bin-name标志,可用于命名生成的二进制文件。 默认回到--crate-name 。 这需要与货物协调。

个人比较喜欢2。

策略应该适用于可执行文件和 cdylib 的类似文件。

如果您可以只为 crate 名称关闭#[warn(non_snake_case)] ,那也很棒。 如果我在顶层使用#![allow(non_snake_case)] ,则会禁用整个箱子的 lint。

策略应该适用于可执行文件和 cdylib 的类似文件。

如果您可以只为 crate 名称关闭#[warn(non_snake_case)] ,那也很棒。 如果我在顶层使用#![allow(non_snake_case)] ,则会禁用整个箱子的 lint。

同意,有没有办法在货物建造时禁用箱子名称的警告?

此页面是否有帮助?
0 / 5 - 0 等级