When writing one of my pet projects or rather, a very simple automation matter in Rust, I fell into many pits. Usually full of snakes (of my own lack of knowledge of rust), but this one struck me as relatively interesting.
The stable compiler does not allow you to use unstable APIs/features. You have to use the nightly release branch.
If you know node, this is probably the equivalent of having to run V8 with harmony flags.
Rustup easily enables you to install the nightly branch of rust and to use it by default:
rustup install nightly rustup default nightly
If you want to revert back to using rust stable, you can run:
rustup default stable
Note that you can also override the Rust release branch per project.
Here an example how you set the project directory you’re in right now to use
rustup override add nightly
#![feature] may not be used on the stable release channel
This is the specific error I ran into while trying out rust-embed to embed a few simple text/config files in my binary.
error[E0554]: #![feature] may not be used on the stable release channel --> src/main.rs:2:1 | 2 | #![feature(attr_literals)] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to previous error error: Could not compile `shaft`.