Expand description
A macro for defining #[cfg]
if/else blocks.
This macro is similar to the popular cfg-if crate, with minor differences in accepted syntax and allows usage in item or expression context.
This macro is also useable in #[no_std]
environments.
§Examples
§Item Context
cifg::cifg! {
if cfg(debug_assertions) {
fn foo() { /* debug functionality */ }
}
else if cfg(windows) {
fn foo() { /* windows release functionality */ }
}
else {
fn foo() { /* non-windows release functionality */ }
}
}
§Expression Context
fn foo() -> u32 {
let bar = 100 + cifg::cifg! {
if cfg(debug_assertions) {
// debug functionality
10
}
else if cfg(windows) {
// windows release functionality
11
}
else {
// non-windows release functionality
12
}
};
bar % 3
}
Macros§
- A macro for defining
#[cfg]
if/else blocks; usable in item or expression context.