目前,如果您有这样的 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)
我实际上一直在研究这个,如果 Rust 团队同意它应该发生的话,我很乐意接受它。
现在,构建二进制文件将[[bin]]::name
作为--crate-name
参数传递。 我想了两种方法来解决这个问题。
--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。
同意,有没有办法在货物建造时禁用箱子名称的警告?
最有用的评论
策略应该适用于可执行文件和 cdylib 的类似文件。
如果您可以只为 crate 名称关闭
#[warn(non_snake_case)]
,那也很棒。 如果我在顶层使用#![allow(non_snake_case)]
,则会禁用整个箱子的 lint。