Crates.io | feature-gate |
lib.rs | feature-gate |
version | 0.1.1 |
source | src |
created_at | 2023-05-29 16:04:23.575595 |
updated_at | 2023-05-29 16:06:59.789479 |
description | A simple macro for feature-gating modules and types |
homepage | |
repository | https://github.com/sunsided/feature-gate |
max_upload_size | |
id | 877210 |
size | 21,061 |
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 {};
}