モジュールシステム

モジュール

Rustは1ファイル1モジュールである。 使用するモジュールはルートファイルで宣言する必要がある。

ファイルモジュール

ファイル構成

src -+ - main.rs
     |
     + module_a.rs
     |
     + module_b.rs

src/main.rs

mod module_a;
mod module_b;

ディレクトリモジュール

2018年度版とそれ以前とが存在する。

2018

ファイル構成

src -+ - main.rs
     |
     + new_module.rs
     |
     + new_module -+- sub_module_a.rs
                   |
                   +- sub_module_b.rs

new_module.rs

mod sub_module_a.rs;
mod sub_module_b.rs;

main.rs

mod new_module;

2015

src -+ - main.rs
     |
     + new_module -+- mod.rs
                   |
                   +- sub_module_a.rs
                   |
                   +- sub_module_b.rs

mod.rs

mod sub_module_a.rs;
mod sub_module_b.rs;

main.rs

mod new_module;

モジュールへのアクセス (use visibility)

モジュールへのアクセスは2つの方法がある。

例: module_b から module_a へのアクセス

module_b.rs

// 絶対パス
use create::module_a::name1;

// 相対パス
use super::module_a::name2;

Appendix

クレート

2種類のクレートが存在し、ルートファイル(エントリーファイル)が異なる。

  • libクレート: src/lib.rs ファイルを持つクレート
  • binクレート: src/main.rs ファイルを持つクレート

参照

keens.github.io