1 stable release
1.0.0 | Apr 12, 2023 |
---|
#1727 in Development tools
306 downloads per month
65KB
831 lines
cfg_boost
Revamped syntax and macros to easily manage all #[cfg] parameters in one package. See features to get the full list of features like aliases, attributes, automatic dependency tag documentation and more.
Example
Transform this :
#[cfg(any(doc, any(target_os = "linux", target_os = "macos", target_os = "windows")))]
#[cfg_attr(docsrs, doc(cfg(any(target_os = "linux", target_os = "windows", target_os = "macos"))))]
pub mod desktop_mod;
#[cfg(any(doc, any(target_os = "linux", target_os = "macos", target_os = "windows")))]
#[cfg_attr(docsrs, doc(cfg(any(target_os = "linux", target_os = "windows", target_os = "macos"))))]
pub use desktop_mod::Struct as Struct;
#[cfg(any(doc, any(target_os = "ios", target_os = "android")))]
#[cfg_attr(docsrs, doc(cfg(any(target_os = "ios", target_os = "android"))))]
pub mod mobile_mod;
#[cfg(any(doc, any(target_os = "ios", target_os = "android")))]
#[cfg_attr(docsrs, doc(cfg(any(target_os = "ios", target_os = "android"))))]
pub use mobile_mod::Struct1 as Struct1;
#[cfg(any(doc, any(target_os = "ios", target_os = "android")))]
#[cfg_attr(docsrs, doc(cfg(any(target_os = "ios", target_os = "android"))))]
pub use mobile_mod::Struct2 as Struct2;
#[cfg(any(doc, any(target_os = "ios", target_os = "android")))]
#[cfg_attr(docsrs, doc(cfg(any(target_os = "ios", target_os = "android"))))]
pub fn mobile_only_fn() {}
Into this :
target_cfg!{
desktop => {
pub mod desktop_mod;
pub use desktop_mod::Struct as Struct;
},
mobile => {
pub mod mobile_mod;
pub use mobile_mod::Struct1 as Struct1;
pub use mobile_mod::Struct2 as Struct2;
pub fn mobile_only_fn() {}
}
}
See examples for more use cases.
Installation
Execute this command in your Rust project folder.
cargo add cfg_boost
Dependencies
cfg_boost has no dependencies and only use stable rust library.
Question?
See cfg_boost wiki, it contains a LOT of information.
Sponsor me via GitHub Sponsors and get your sponsor royalty tier.