PATH VISIBILITY
경로 오류는 위치와 공개 범위를 분리해서 찾는다
모듈 트리에서 이름을 찾는 문제와 pub으로 외부 접근을 허용하는 문제는 비슷해 보여도 다른 기준으로 해결합니다.
crate::
super::
pub mod
crate에서 시작
현재 위치와 무관하게 루트부터 내려가려면 crate:: 경로를 사용합니다.
현재 모듈 기준
같은 부모 안의 항목을 다룰 때는 self나 super로 짧게 표현할 수 있습니다.
문과 방을 모두 연다
부모 모듈이 공개되어도 내부 함수나 필드가 비공개면 외부에서 사용할 수 없습니다.
01 · 위치
현재 모듈을 확인합니다.
02 · 루트
crate 경로를 시도합니다.
03 · 부모
super가 맞는지 봅니다.
04 · 공개
각 단계의 pub을 확인합니다.
구조체는 타입이 pub이어도 필드는 따로 pub이 필요하지만, pub enum의 배리언트는 함께 공개됩니다.