cfg-if
用来做条件编译的宏。
示例:
#![allow(unused)] fn main() { cfg_if::cfg_if! { if #[cfg(unix)] { fn foo() { /* unix specific functionality */ } } else if #[cfg(target_pointer_width = "32")] { fn foo() { /* non-unix, 32-bit functionality */ } } else { fn foo() { /* fallback implementation */ } } } }
等价于
#![allow(unused)] fn main() { #[cfg(unix)] fn foo() { /* unix specific functionality */ } #[cfg(all(target_pointer_width = "32", not(unix)))] fn foo() { /* non-unix, 32-bit functionality */ } #[cfg(not(any(unix, target_pointer_width = "32")))] fn foo() { /* fallback implementation */ } }