patternrustCritical
What is a crate attribute and where do I add it?
Viewed 0 times
andattributewherecrateaddwhat
Problem
In order to get a feel for how Rust works, I decided to look at a little terminal-based text editor called Iota. I cloned the repository and ran
Where am I supposed to add
cargo build only to be told:error: if let syntax is experimental
help: add #![feature(if_let)] to the crate attributes to enable
Where am I supposed to add
#![feature(if_let)] to the crate attributes?Solution
A crate attribute is an attribute (
If you are creating
The Rust Programming Language and the Rust Reference talk a bit about attributes in general. The Unstable Book contains a list of feature flags and brief documentation on what they do.
There are many different crate attributes, but the
#[...]) that applies to the enclosing context (#![...]). This attribute must be added to the top of your crate root, thus the context is the crate itself: #![attribute_name]
#![attribute_name(arg1, ...)]If you are creating
- a library — the crate root will be a file called
lib.rs
- an application — the crate root would be the primary
.rsfile you build. In many cases, this will be calledmain.rs
- an integration test - the crate root is each file in
tests/
- an example - the crate root is each file in
examples/
The Rust Programming Language and the Rust Reference talk a bit about attributes in general. The Unstable Book contains a list of feature flags and brief documentation on what they do.
There are many different crate attributes, but the
feature crate attribute (#![feature(feature1, feature2)]) may only be used in a nightly version of the compiler. Unstable features are not allowed to be used in stable Rust versions.Code Snippets
#![attribute_name]
#![attribute_name(arg1, ...)]Context
Stack Overflow Q#27454761, score: 147
Revisions (0)
No revisions yet.