module

모듈

선언

  • Crate Root에서 시작됨

    • 컴파일러는 src/main.rs, src/lib.rs를 먼저 읽음
  • 모듈 선언

    • Crate Root 파일에서 모듈을 선언 가능
      • 아래처럼 선언하면, inline module, src/garden.rs, src/garden/mod.rs 파일을 읽음
      // src/main.rs
      mod garden;
      mod garden { // inline module
      ...
      }
      
  • 서브 모듈 선언

    • 모듈 코드 안에서도 모듈 선언 가능
      // src/garden/mod.rs
      mod vegetables;
      mod vegetables { // inline module
      ...
      }
      
  • 모듈 참조

    • crate::garden::vegetables::~과 같이 모듈와 모듈 안에 선언된 타입 또는 함수를 참조할 수 있다.
  • 공개, 비공개

    • 기본적으로 모듈은 부모 모듈에게 비공개이다.
    • pub mod와 같이 모듈이나 모듈의 아이템에 pub를 붙여서 공개할 수 있다.
  • use 키워드

    • use crate::garden::vegetables::Asparagus;와 같이 선언하면 Asparagus를 바로 접근 가능하다.