
244
이펙티브 러스트
mod thing;
pub use thing::*;
와일드카드 임포트가 적합한 또 다른 예외로, 크레이트 중에서 공통 항목에 대해 프렐류
드
prelude
모듈을 다시 익스포트
export
하는 관례를 따르는 경우가 있다. 이럴 때는 의도적으로 와
일드카드 임포트를 사용한다.
use thing::prelude::*;
이론적으로 이 경우에도 똑같은 문제가 발생할 수 있지만, 실제로는 프렐류드 모듈이 신중하게
구성됐을 가능성이 높고 향후에 문제가 발생할 위험보다 그로 인해 얻는 편리함이 훨씬 크다.
만약 이 아이템의 조언을 따르지 않는다면, 의존성의 마이너 버전 업그레이드가 자동으로 허용
되지 않도록
와일드카드 임포트로 가져온 의존성을 구체적인 버전으로 고정시키는 방법
(아이템
21
참조 )도 고려하길 바란다.
아이템
24
:
API
에 타입으로 나오는 의존성을 다시 익스포트하라
제목이 다소 난해하지만, 예제를 보면 무슨 말인지 이해할 수 있다.
4
아이템
25
에서는 한 라이브러리 크레이트에 대한 다양한 버전을 바이너리 하나에 투명하게 연
결하는 방법을
cargo
에서 어떻게 제공하고 있는지 설명한다. 예를 들어 다음과 같이
0
.
8
버전
의
rand
크레이트를 사용하는 바이너리가 있다.
# 최상위 바이너리 크레이트에 대한 Cargo.toml 파일
[dependencies] ...