Was ist ein Kistenattribut und wo füge ich es hinzu?

78

Um ein Gefühl dafür zu bekommen, wie Rust funktioniert, habe ich mich für einen kleinen terminalbasierten Texteditor namens Iota entschieden . Ich habe das Repository geklont und bin cargo buildnur gelaufen , um zu erfahren:

error: *if let* syntax is experimental

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

Wo soll ich die Kistenattribute ergänzen #![feature(if_let)]?

Soham Chowdhury
quelle
3
Nebenbei bemerkt, neuere (nächtliche) Builds von Rust haben diese Funktion standardmäßig aktiviert, sodass durch das Aktualisieren von Rust auch Ihr Problem behoben wird.
Shepmaster

Antworten:

79

Ein Kistenattribut ist ein Attribut ( #[...]), das für den umschließenden Kontext ( #![...]) gilt. Dieses Attribut muss oben in Ihrer Kistenwurzel hinzugefügt werden , daher ist der Kontext die Kiste selbst:

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

Wenn Sie erstellen

  • eine Bibliothek - die Kistenwurzel ist eine Datei namens lib.rs
  • eine Anwendung - der Kistenstamm wäre die primäre .rsDatei, die Sie erstellen. In vielen Fällen wird dies aufgerufenmain.rs
  • ein Integrationstest - die Kistenwurzel ist jede Datei in tests/
  • Ein Beispiel - die Kistenwurzel ist jede Datei in examples/

Die Rust-Programmiersprache und die Rust-Referenz sprechen ein wenig über Attribute im Allgemeinen. Das instabile Buch enthält eine Liste von Funktionsflags und eine kurze Dokumentation zu deren Funktionsweise.

Es gibt viele verschiedene Kistenattribute, aber das featureKistenattribut ( #![feature(feature1, feature2)]) kann nur in einer nächtlichen Version des Compilers verwendet werden. Instabile Funktionen dürfen in stabilen Rust-Versionen nicht verwendet werden.

Shepmaster
quelle