conditional_mod/lib.rs
1/// Conditionally declares a mod as public.
2///
3/// Arguments:
4/// - name - The name of the module being declared
5/// - cond - The condition for `conditional_vis`
6/// - conditional_vis - The visibility to use if `cond` is true
7/// - fallback_vis - Optional visibility to use if `cond` is false
8#[macro_export]
9macro_rules! conditional_vis_mod {
10 ($name:ident, $cond:meta, $conditional_vis:vis) => {
11 #[cfg($cond)]
12 $conditional_vis mod $name;
13 #[cfg(not($cond))]
14 mod $name;
15 };
16 ($name:ident, $cond:meta, $conditional_vis:vis, $fallback_vis:vis) => {
17 #[cfg($cond)]
18 $conditional_vis mod $name;
19 #[cfg(not($cond))]
20 $fallback_vis mod $name;
21 };
22}