cfg_boost

Crates.iocfg_boost
lib.rscfg_boost
version1.0.0
sourcesrc
created_at2023-04-12 14:23:02.054936
updated_at2023-04-12 14:23:02.054936
descriptionRevamped 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.
homepagehttps://github.com/NickelAngeStudio/cfg_boost/wiki
repositoryhttps://github.com/NickelAngeStudio/cfg_boost
max_upload_size
id836961
size65,289
NickelAngeStudio (NickelAngeStudio)

documentation

README

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.

Commit count: 73

cargo fmt