Ответ 1
Атрибут crate - это атрибут (#[...]
), который применяется к окружающему контексту (#![...]
). Этот атрибут должен быть добавлен в верхнюю часть корня ящика, поэтому контекстом является сам ящик:
#![attribute_name]
#![attribute_name(arg1, ...)]
Если вы создаете
- библиотека - корнем ящика будет файл с именем
lib.rs
- приложение - корень ящика будет основным файлом
.rs
который вы создаете. Во многих случаях это будет называтьсяmain.rs
- интеграционный тест - корнем ящика является каждый файл в
tests/
- пример - корень ящика - это каждый файл в
examples/
Язык программирования Rust и Rust Reference немного говорят об атрибутах в целом. Нестабильная книга содержит список флагов функций и краткую документацию о том, что они делают.
Существует много различных атрибутов ящиков, но атрибут ящика feature
(#![feature(feature1, feature2)]
) можно использовать только в ночной версии компилятора. Нестабильные функции нельзя использовать в стабильных версиях Rust.