7 releases (breaking)
| 0.6.0 | Jan 22, 2025 |
|---|---|
| 0.5.0 | Jan 22, 2025 |
| 0.4.0 | Jan 22, 2025 |
| 0.3.1 | Dec 17, 2024 |
| 0.1.0 | Aug 21, 2024 |
#199 in Procedural macros
1,636 downloads per month
10KB
148 lines
cfg-exif
The rustfmt-friendly conditional compilation like cfg-if.
Features
- Conditional compilation at both expression and item positions
rustfmtfriendly
Examples
use cfg_exif::{expr, item};
item::cfg!(if (feature == "foo") {
type Foo = usize;
} else if (target_pointer_width != "64") {
type Foo = isize;
} else if ((target_family == "unix") && (feature == "bar")) {
type Foo = i32;
} else if ((feature == "baz") || (target_os == "freebsd")) {
type Foo = i64;
} else if (!(panic == "unwind")) {
type Foo = i128;
} else {
type Foo = f64;
});
assert_eq!(3.14 as Foo, 3.14);
assert_eq!(
expr::cfg!(if (feature == "foo") {
0
} else if (target_pointer_width != "64") {
1
} else if ((target_family == "unix") && (feature == "bar")) {
2
} else if ((feature == "baz") || (target_os == "freebsd")) {
3
} else if (!(panic == "unwind")) {
4
} else {
42
}),
42
);