pub(self) mod private_mod {
pub(super) mod pub_in_super {
pub(in crate::another_mod) fn pub_in_file() {
println!("called `pub_in_super::pub_in_file()`");
}
pub fn pub_in_anywhere() {
println!("called `pub_in_super::pub_in_anywhere()`");
}
}
pub use pub_in_super::pub_in_anywhere;
}
#[allow(dead_code)]
pub(crate) fn pub_in_crate() {
private_mod::pub_in_super::pub_in_file();
self::private_mod::pub_in_super::pub_in_file();
super::another_mod::private_mod::pub_in_super::pub_in_file();
crate::another_mod::private_mod::pub_in_super::pub_in_file();
self::private_mod::pub_in_super::pub_in_anywhere();
self::private_mod::pub_in_anywhere();
super::private_function();
}
#[cfg(test)]
pub(self) mod tests {
#[test]
fn visibility() {
use super::pub_in_crate;
pub_in_crate();
}
}