pub mod complicated { pub mod a { pub fn a() { println!("a::a()"); } } pub mod b { use super::a; pub fn b() { a::a(); } } pub mod c { pub mod d { pub fn d() { println!("c::d::d()"); } } } } use self::complicated::{a, b, c}; fn main() { a::a(); self::b::b(); self::c::d::d(); }