feature-gate

Crates.iofeature-gate
lib.rsfeature-gate
version0.1.1
sourcesrc
created_at2023-05-29 16:04:23.575595
updated_at2023-05-29 16:06:59.789479
descriptionA simple macro for feature-gating modules and types
homepage
repositoryhttps://github.com/sunsided/feature-gate
max_upload_size
id877210
size21,061
Markus Mayer (sunsided)

documentation

README

Simple documented feature gates

This crates provides the feature_gate and feature_gate_ex macros for simple #[cfg(feature = "...")] macros that are properly documented on docs.rs.

Stable Rust

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"]

Example

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 {};
}
Commit count: 4

cargo fmt