G.CAR.02 Crate 的 Cargo.toml 中应该包含必要的元信息

【级别】 建议

【描述】

在 Cargo.toml 中应该包含必要的元信息,以便使用者知道它的作用。 此外,若要将 crate 发布到 crates.io 上的话,这些信息也是必须的。可参考 The Cargo Book 中的相关介绍

【反例】

# 不符合:此 `Cargo.toml` 缺失介绍(description)项。无法发布到 crates.io。
[package]
name = "clippy"
version = "0.0.212"
repository = "https://github.com/rust-lang/rust-clippy"
readme = "README.md"
license = "MIT OR Apache-2.0"
keywords = ["clippy", "lint", "plugin"]
categories = ["development-tools", "development-tools::cargo-plugins"]

【正例】

# 符合:此 `Cargo.toml` 包含必要元信息。
[package]
name = "clippy"
version = "0.0.212"
description = "A bunch of helpful lints to avoid common pitfalls in Rust"
repository = "https://github.com/rust-lang/rust-clippy"
readme = "README.md"
license = "MIT OR Apache-2.0"
keywords = ["clippy", "lint", "plugin"]
categories = ["development-tools", "development-tools::cargo-plugins"]

【Lint 检测】

lint nameClippy 可检测Rustc 可检测Lint Grouplevel
cargo_common_metadatayesnocargoallow