#conditional-compilation #override #pub #conditional #compilation

macro visibility

Attribute to override the visibility of items (useful in conjunction with cfg_attr)

4 releases

0.1.0 Sep 2, 2023
0.0.1 Mar 6, 2021
0.0.0 Mar 6, 2021

#1178 in Rust patterns

Download history 2491/week @ 2023-12-17 1935/week @ 2023-12-24 1782/week @ 2023-12-31 4273/week @ 2024-01-07 3470/week @ 2024-01-14 4224/week @ 2024-01-21 3783/week @ 2024-01-28 3004/week @ 2024-02-04 2877/week @ 2024-02-11 3280/week @ 2024-02-18 3178/week @ 2024-02-25 4919/week @ 2024-03-03 3548/week @ 2024-03-10 3974/week @ 2024-03-17 4845/week @ 2024-03-24 4774/week @ 2024-03-31

17,335 downloads per month
Used in 49 crates (15 directly)

Zlib OR MIT OR Apache-2.0

7KB

#[visibility::make]

Repository Latest version Documentation MSRV unsafe forbidden License CI

Attribute to override the visibility of items (especially useful in conjunction with #[cfg_attr()]).

Since it is currently not possible to conditionally modify the visibility of an item, but since it is possible to conditionally apply an attribute, this crate features a trivial attribute that modifies the visibility of the decorated item. This way, by conditionally applying it, one can achieve the desired goal:

Example

/// Some fancy docs.
///
/// ## Example
///
/// ```rust
/// ::my_crate::module::foo();
/// ```
// Assuming `cargo test --doc --features integration-tests` is run:
#[cfg_attr(feature = "integration-tests", visibility::make(pub))]
mod module {
    pub fn foo() {}
}

Dependencies

~315–760KB
~18K SLoC