Crates.io | nscfg |
lib.rs | nscfg |
version | 1.0.0 |
source | src |
created_at | 2024-06-03 19:28:53.559079 |
updated_at | 2024-06-03 19:28:53.559079 |
description | Nifty Simple CFG provides a revamped syntax and macros to easily manage all #[cfg] parameters in one package. Compatible with stable toolchain and no dependencies. See README / Homepage for more details. |
homepage | https://github.com/NickelAngeStudio/nscfg/wiki |
repository | https://github.com/NickelAngeStudio/nscfg |
max_upload_size | |
id | 1260405 |
size | 69,632 |
Nifty Simple CFG provides a 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.
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.
Execute this command in your Rust project folder.
cargo add nscfg
nscfg has no dependencies and only use stable rust library.
See nscfg wiki, it contains a LOT of information.