자식 모듈은 부모 모듈의 private 요소들을 자유롭게 접근할 수 있다
자식 모듈은 부모 모듈의 private 요소들을 자유롭게 접근할 수 있다.
테스트 코드를 예로 들면, run 함수는 현재 어떤 모듈 foo.rs
안에 속해있다고 가정하자. 그러면 test_run
함수는 전체 path가 crate::foo::tests::test_run
일 것이다. 이때 tests
모듈은 foo
모듈의 private fn인 run
을 호출할 수 있을까? YES.
Rust chose to have the module system function this way so that hiding inner implementation details is the default. link
// src/foo.rs
fn run() { }
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_run() {
run();
}
}
다만 상대주소 (마치 디렉토리 시스템에서 ..
과 같이)를 적용하기 위해서 super
키워드를 사용하여야 한다. super
사용을 줄이기 위해 use
키워드를 사용할 수 있고.