cfg_vis

Attribute Macro cfg_vis 

Source
#[cfg_vis]
Expand description

§cfg visibility on items

§Rules

#[cfg_vis($cond1:meta, $vis1:vis)]
#[cfg_vis($cond2:meta, $vis2:vis)]
#[cfg_vis($cond3:meta, $vis3:vis)]
$default_vis:vis $($item:tt)*

will expend to

#[cfg($cond1)]
$vis1 $($item)*

#[cfg($cond2)]
$vis2 $($item)*

#[cfg($cond3)]
$vis3 $($item)*

#[cfg(not($cond1))]
#[cfg(not($cond2))]
#[cfg(not($cond3))]
$default_vis $($item)*

§Example

use cfg_vis::cfg_vis;

// default visibility is `pub`, while the target is linux, the visibility is `pub(crate)`.
#[cfg_vis(target_os = "linux", pub(crate))]
pub fn foo() {}