はい、問題があります。こんなことしないで。
どうやってこれを自分で判断できたのですか
提案したコードを使用してみてください。次のことがわかります。
$ cargo build
error: failed to parse manifest at `.../Cargo.toml`
Caused by:
could not parse input as TOML
Caused by:
expected an equals, found a period at line 9
同じ名前のパッケージを作成しようとした可能性もあります。次に、次のように表示されます。
$ cargo new 'gccjit.rs.git'
error: Invalid character `.` in crate name: `gccjit.rs.git`
use --name to override crate name
クレート名を管理するのは誰か
インポートされたクレートの名前をそのように制御することはできません。クレートがそれを決定し、すでに 1 つ選択されています。
[package]
name = "gccjit"
インポート時に既存のパッケージの名前を変更する場合は、package
キーを使用して実際の名前と一致させる必要があります。
some_name = { package = "gccjit", git = "https://github.com/swgillespie/gccjit.rs.git" }
Rust 2018 でクレートを慣用的にエイリアスする方法を参照してください。多くのための。
名前にピリオドを使用するには、一見文字列キーを使用できます (ただし、これはバグだと思います)。
"gcc.jit" = { package = "gccjit", git = "https://github.com/swgillespie/gccjit.rs.git" }
ただし、パッケージ名は有効な Rust 識別子である必要がありますが、ピリオドはそうではありません。これを行うと、パッケージを使用する方法がありません。
とにかく冗長です
もっと意見に基づいて、そのような名前は完全に無意味です。もちろんRustコードなので、名前に「rs」や「rust」を付ける必要はありません。そうでなければ、そもそも依存関係として使用できませんでした。
同じ理由で、パッケージを "computer-source-code-awesome-tool" とは呼びません。
パッケージ名はソース管理とは異なります
Cargo と Rust は、ソース管理リポジトリの名前は気にしません。パッケージ名とは別のものです。それらがある程度似ている方が良いですが、それらが関連している必要がある本当の理由はありません.
パッケージ名はライブラリ名とは異なります
これは使用回数が非常に少ない機能ですが、パッケージの名前 (別名 Crates.io のクレートの名前) は、ライブラリの名前(コードにインポートされるもの) とは異なる場合があります。
ピストンは、私が知っている最大の「犯罪者」です。
[package]
name = "piston2d-graphics"
version = "0.30.0"
[lib]
name = "graphics"
デバッグしようとするのは気が狂ってしまうだけなので、これを使用しないでください。