web-dev-qa-db-fra.com

Qu'est-ce qu'un attribut de caisse et où dois-je l'ajouter?

Afin de comprendre comment Rust fonctionne, j'ai décidé de regarder un petit éditeur de texte basé sur un terminal appelé Iota . J'ai cloné le référentiel et exécuté cargo build Seulement pour être informé:

error: *if let* syntax is experimental

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

Où suis-je censé ajouter #![feature(if_let)] aux attributs de la caisse?

50
Soham Chowdhury

Un attribut de caisse est un attribut (#[...]) Qui s'applique au contexte englobant (#![...]). Cet attribut doit être ajouté en haut de votre racine de caisse, donc le contexte est la caisse elle-même:

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

Si vous créez

  • une bibliothèque - la racine de la caisse sera un fichier appelé lib.rs
  • une application - la racine de la caisse serait le fichier .rs principal que vous créez. Dans de nombreux cas, cela s'appellera main.rs
  • un test d'intégration - la racine de la caisse est chaque fichier dans tests/
  • un exemple - la racine de la caisse est chaque fichier dans examples/

Le Rust langage de programmation et le Rust Reference parlent un peu des attributs en général. The Unstable Book contient une liste d'indicateurs de fonctionnalités et une brève documentation sur ce qu'ils font.

Il existe de nombreux attributs de caisse différents, mais l'attribut de caisse feature (#![feature(feature1, feature2)]) ne peut être utilisé que dans un nocturne version du compilateur. Les fonctionnalités instables ne sont pas autorisées à être utilisées dans les versions stables Rust.

47
Shepmaster