PATH VISIBILITY

경로 오류는 위치와 공개 범위를 분리해서 찾는다

모듈 트리에서 이름을 찾는 문제와 pub으로 외부 접근을 허용하는 문제는 비슷해 보여도 다른 기준으로 해결합니다.

crate:: super:: pub mod
절대

crate에서 시작

현재 위치와 무관하게 루트부터 내려가려면 crate:: 경로를 사용합니다.

상대

현재 모듈 기준

같은 부모 안의 항목을 다룰 때는 self나 super로 짧게 표현할 수 있습니다.

공개

문과 방을 모두 연다

부모 모듈이 공개되어도 내부 함수나 필드가 비공개면 외부에서 사용할 수 없습니다.

01 · 위치 현재 모듈을 확인합니다.
02 · 루트 crate 경로를 시도합니다.
03 · 부모 super가 맞는지 봅니다.
04 · 공개 각 단계의 pub을 확인합니다.
구조체 차이

구조체는 타입이 pub이어도 필드는 따로 pub이 필요하지만, pub enum의 배리언트는 함께 공개됩니다.