Да, есть проблема.Не делайте этого.
Как вы сами это определили
Попробуйте использовать предложенный код, вы увидите:
$ 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
Кто контролирует имена ящиков
Вы не можете таким образом контролировать имя импортированного ящика; ящик определяет его , и он уже выбран:
[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, а периоды - нет.Если вы сделаете это, то не сможете использовать пакет .
В любом случае это излишне
Более основанное на мнении мнение, такое имя совершенно бессмысленно.Вам не нужно произносить «rs» или «ржавчина» в названии, потому что конечно это код Rust.Если это не так, вы не могли бы использовать его в качестве зависимости в первую очередь.
Мы не называем наши пакеты «computer-source-code-awesome-tool» по той же причине - это подразумевает многое.
Имена пакетов отличаются от управления исходным кодом
Cargo и Rust не волнует, как называется ваш репозиторий контроля версий.Это отдельно от названия пакета.Хотя лучше, чтобы они были чем-то похожими, нет никакой реальной причины, по которой они вообще должны быть связаны.
Имена пакетов отличаются от имен библиотек
Это особенность с оченьнебольшое количество использований, но имя вашего пакета (он же имя ящика на Crates.io) может отличаться от имени вашей библиотеки (что импортируетсяв код).
Поршень является самым большим "нарушителем" этого, о котором я знаю:
[package]
name = "piston2d-graphics"
version = "0.30.0"
[lib]
name = "graphics"
Пожалуйста, не используйте это, поскольку это просто сводит с умапопытка отладки.