This crates provides the feature_gate and feature_gate_ex
macros for simple #[cfg(feature = "...")] macros that are properly
documented on docs.rs.
Note that for it to work properly on stable Rust, the following needs to be
added to Cargo.toml for the time being (see Metadata for custom builds):
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]The feature_gate macro allows the specification of a single feature:
use feature_gate::feature_gate;
#[feature_gate("test")]
struct FeatureGated;
#[test]
fn it_works() {
let _ = FeatureGated {};
}The feature_gate_ex macro allows the specification of a complex set of requirements:
use feature_gate::feature_gate_ex;
#[feature_gate_ex(any(test, feature = "test"))]
struct FeatureGated;
#[test]
fn it_works() {
let _ = FeatureGated {};
}