Rust module path

use 경로 지도

use는 긴 경로를 현재 스코프로 가져오는 장치다. 어디에 두는지와 어떤 이름까지 가져오는지가 API의 읽기성을 좌우한다.

01

긴 경로 확인

front_of_house 안의 hosting처럼 반복되는 부분을 먼저 찾는다.

02

스코프 선택

호출하는 코드와 같은 범위에 use를 둬야 이름을 바로 쓸 수 있다.

03

출처 남기기

함수는 호출부에 부모 모듈 이름을 남기면 의미가 선명하다.

04

충돌 처리

같은 이름은 부모 경로나 as 별칭으로 구분한다.

05

반복 줄이기

중첩 경로와 글롭은 범위가 명확할 때만 제한적으로 쓴다.

대상
권장 형태
읽기성 기준
함수
부모 모듈까지 가져오기
호출부에 모듈 이름이 남아 함수의 출처를 알 수 있다.
구조체와 열거형
HashMap 이름까지 가져오기
타입 이름 자체가 문맥을 제공하므로 최종 이름까지 가져와도 자연스럽다.
같은 이름 두 개
fmt::Result 또는 IoResult
충돌을 숨기지 말고 어느 모듈의 결과인지 이름으로 드러낸다.
외부로 노출
pub use internal::Type;
내부 구조를 바꾸더라도 사용자가 의존하는 공개 경로는 안정적으로 유지한다.
스코프

자식 모듈은 따로 가져온다

부모에 둔 use가 자식 코드까지 자동으로 적용된다고 가정하면 경로 오류가 난다.

별칭

충돌은 이름으로 해결

as는 짧게 만드는 도구보다 충돌한 의미를 보존하는 도구로 쓰는 편이 안전하다.

글롭

전체 공개는 예외 처리

*는 테스트 프렐류드처럼 의도가 뚜렷한 곳에서만 사용해야 읽기성이 유지된다.