cfg-if
cfg-if copied to clipboard
Allow to have multiple conditions in the same macro call
It's quite convenient when you have multiple small conditions and want coherency across cfg handling (example with sysinfo crate):
cfg_if::cfg_if! {
if #[cfg(feature = "system")] {
if #[cfg(not(feature = "apple-sandbox"))] {
pub(crate) mod cpu;
pub mod system;
pub mod process;
} else {
pub use crate::sys::app_store::process;
}
}
if #[cfg(feature = "disk")] {
pub mod disk;
}
if #[cfg(feature = "apple-sandbox")] {
pub use crate::sys::app_store::component;
} else {
pub mod component;
}
}
I'm not sure how likely new features are here considering match_cfg will soon be eating its lunch?
match_cfg seems to be more limited. For example you can't have cfg conditions (handled by the macro) inside branches, unlike cfg_if.