Crates.io | match_cfg |
lib.rs | match_cfg |
version | 0.1.0 |
source | src |
created_at | 2019-04-02 10:50:59.802728 |
updated_at | 2019-04-02 10:50:59.802728 |
description | A convenience macro to ergonomically define an item depending on a large number of `#[cfg]` parameters. Structured like match statement, the first matching branch is the item that gets emitted. |
homepage | https://github.com/gnzlbg/match_cfg |
repository | https://github.com/gnzlbg/match_cfg |
max_upload_size | |
id | 125332 |
size | 20,199 |
Minimum Supported Rust Version: 1.13.0.
A convenience macro to ergonomically define an item depending on a large number
of #[cfg]
parameters. Structured like match statement, the first matching
branch is the item that gets emitted.
[dependencies]
match_cfg = "0.1"
The use_core
feature is enabled by default and builds the crate with libcore
as a dependency by using the #![no_std]
attribute. When this feature is
disabled, this crate is built without libcore support by using the #![no_core]
attribute - this makes use of the #![feature(no_core)]
and requires a nightly
version of Rust.
#[macro_use(match_cfg)]
extern crate match_cfg;
match_cfg! {
#[cfg(unix)] => {
fn foo() { /* unix specific functionality */ }
}
#[cfg(target_pointer_width = "32")] => {
fn foo() { /* non-unix, 32-bit functionality */ }
}
_ => {
fn foo() { /* fallback implementation */ }
}
}
fn main() {
foo();
}
This project is licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Serde by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.