Expand description

See the stdlib documentation.

Example

// Objective
cfg_env! {
    #[cfg_env("NON_EXISTENT_ENV_VAR")]
    compile_error!("Unreachable!");
}
// Some module to be used when debugging
cfg_env! {
    #[cfg_env("MY_FANCY_NAME_DEBUG")]
    pub mod debugging_helpers {
        // ...
    }
}

// Implementation
macro_rules! cfg_env {(
    #[cfg_env($var_name:expr)]
    $item:item
) => (
    ::with_builtin_macros::with_builtin!(let $mb_env = option_env!($var_name) in {
        cfg_non_empty! {
            #[cfg_non_empty($mb_env)]
            $item
        }
    });
)}
use cfg_env;

// Helper
macro_rules! cfg_non_empty {
    (
        #[cfg_non_empty()]
        $item:item
    ) => (
        /* Nothing */
    );
    (
        #[cfg_non_empty( $($stuff:tt)+ )]
        $item:item
    ) => (
        $item
    );
}
use cfg_non_empty;