Avatar ·

Que sont les attributs de crate en Rust et où doivent-ils être ajoutés dans le code ?

Bonjour à tous ! Je viens de commencer à apprendre Rust et j'essaie de comprendre les attributs de crate. Dans la documentation officielle, il est dit qu'il existe des attributs qui s'appliquent à l'ensemble du crate, mais je ne comprends pas ce que cela signifie ni où les placer. J'ai un projet simple que j'ai créé avec `cargo new my_project`. À l'intérieur, il y a un fichier `main.rs` avec une fonction `main`. J'ai lu qu'on peut utiliser l'attribut `#![allow(unused_variables)]` pour que le compilateur ne se plaigne pas des variables inutilisées. Mais quand j'ai écrit : ```rust #![allow(unused_variables)] fn main() { let x = 5; let y = 10; println!("Hello!"); } ``` Le compilateur a émis un avertissement indiquant que l'attribut ne s'applique pas à une expression. J'ai essayé de mettre `#[allow(unused_variables)]` (avec un seul point d'exclamation), et alors l'avertissement a disparu seulement pour une expression, pas pour tout le fichier. Quelle est la différence entre `#![...]` et `#[...]` ? Pourquoi mon attribut n'a-t-il pas fonctionné comme un attribut de crate ? Et où exactement faut-il l'ajouter ?