Cargo features have to be additive

452 points ___pro___

I just found this out after using rust for a few years, so thought that I should share it here.

Cargo features are meant to be additive and additive only, if any cargo feature takes away functionality or is incompatible with any other feature it's incorrect usage of them. And it's not just for consistency, it actually matters because you can't depend on the same crate twice with different features.

As common as it is, turns out the 'no_std' feature is a mistake, and instead you should make an additive 'std' feature (which you can add to the default-features)

I feel like this should be emphasized more in the documentation on cargo features.