Attribute Macro cfg_vis::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(super)`.
#[cfg_vis(target_os = "linux", pub(super))]
pub fn foo() {}