ファイルシステム階層

モジュールの定義内容を省略すると、Rust はそれを別のファイルで探します。

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

This tells Rust that the garden module content is found at src/garden.rs. Similarly, a garden::vegetables module can be found at src/garden/vegetables.rs.

crate ルートは以下の場所にあります。

  • src/lib.rs(ライブラリ クレートの場合)
  • src/main.rs(バイナリ クレートの場合)

ファイルで定義されたモジュールに対して、「内部ドキュメント用コメント」を使用して説明を加えることもできます。これらのコメントは、それが含まれるアイテム(この場合はモジュール)に対する説明になります。

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 5 minutes.
  • Rust 2018 より前では、モジュールを module.rs ではなく module/mod.rs に配置する必要がありました。これは 2018 以降のエディションでも依然としてサポートされています。

  • filename/mod.rs の代わりに filename.rs が導入された主な理由は、mod.rs という名前のファイルが多くあると、それらをIDEで区別するのが難しい場合があるからです。

  • より深いネストでは、メイン モジュールがファイルであっても、フォルダを使用できます。

    src/ ├── main.rs ├── top_module.rs └── top_module/ └── sub_module.rs
  • Rust がモジュールを検索する場所は、コンパイラ ディレクティブで変更できます。

    #[path = "some/path.rs"] mod some_module;

    これは、たとえば Go でよく行われているように、some_module_test.rs という名前のファイルにモジュールのテストを配置する場合に便利です。