Подтвердить что ты не робот

Что такое атрибут ящика и где его добавить?

Чтобы понять, как работает Rust, я решил взглянуть на небольшой текстовый редактор на основе терминала, который называется Iota. Я клонировал хранилище и управлял cargo build только для того, чтобы мне сказали:

error: *if let* syntax is experimental

help: add #![feature(if_let)] to the crate attributes to enable

Где я должен добавить #![feature(if_let)] к атрибутам ящика?

4b9b3361

Ответ 1

Атрибут crate - это атрибут (#[...]), который применяется к окружающему контексту (#![...]). Этот атрибут должен быть добавлен в верхнюю часть корня ящика, поэтому контекстом является сам ящик:

#![attribute_name]
#![attribute_name(arg1, ...)]

Если вы создаете

  • библиотека - корнем ящика будет файл с именем lib.rs
  • приложение - корень ящика будет основным файлом .rs который вы создаете. Во многих случаях это будет называться main.rs
  • интеграционный тест - корнем ящика является каждый файл в tests/
  • пример - корень ящика - это каждый файл в examples/

Язык программирования Rust и Rust Reference немного говорят об атрибутах в целом. Нестабильная книга содержит список флагов функций и краткую документацию о том, что они делают.

Существует много различных атрибутов ящиков, но атрибут ящика feature (#![feature(feature1, feature2)]) можно использовать только в ночной версии компилятора. Нестабильные функции нельзя использовать в стабильных версиях Rust.