Как создать псевдоним в Rust 2018?
Я экспериментирую с Rust Edition 2018. У меня есть ящик foo_sys
, В Rust 2015 я использовал extern crate foo_sys as foo
для удобства, но это не влияет на Rust 2018, так как extern crate
больше не нужен:
ошибка [E0463]: не удается найти ящик для
foo
2 ответа
Это может быть достигнуто с помощью нестабильной функции переименования-зависимости груза. С помощью этой функции можно предоставить атрибут пакета для зависимостей:
Функция переименования-зависимости позволяет импортировать зависимость с другим именем из источника. Это может быть полезно в нескольких сценариях:
- В зависимости от ящиков с одинаковыми именами из разных реестров.
- В зависимости от нескольких версий ящика.
- Избегайте необходимости
extern crate foo as bar
в источнике ржавчины.
Вместо того чтобы писать
[dependencies]
foo_sys = "0.2"
package
ключ может быть добавлен к зависимости в Cargo.toml
:
[dependencies]
foo = { package = "foo_sys", version = "0.2" }
Эту функцию можно включить, добавив "rename-dependency"
к cargo-features
ключ на верхнем уровне манифеста:
cargo-features = ["rename-dependency"]
Это больше не нужно, но синтаксис не удаляется. Так что вы все еще можете сказать:
extern crate foo_sys as foo;
Насколько я знаю, нет возможности указать псевдонимы в Cargo.toml
так что используя extern crate
это единственный способ. Я предположил бы, что псевдонимы ящиков становятся более однотипными в Rust 2018, потому что extern crate
декларации предположительно станут однотипными.