Skip to main content

mod.rs を使わない Rust 2018+ 新スタイルのモジュール構成

問題​

PR レビュー中に、mod.rs を使った旧スタイルのモジュール構成が見つかった。

原因​

Rust にはモジュールをファイルに分割する置き方が 2 つある。

  • 旧スタイル: foo/mod.rs
  • 新スタイル(Rust 2018+): foo.rs(親)+ foo/bar.rs(子)

新スタイルの利点は次の通り。

  • ファイル名から直接どのモジュールか分かる(foo.rs = foo モジュール)。mod.rs だと、どのモジュールの mod.rs なのかはディレクトリ名を見ないと分からない。
  • エディタのタブに mod.rs が並んで重複表示されない(複数モジュールを開くと mod.rs だらけになる問題を避けられる)。
// 旧スタイル
src/
foo/
mod.rs
bar.rs

// 新スタイル(Rust 2018+)
src/
foo.rs
foo/
bar.rs

どちらのスタイルもモジュールパス(crate::foo::bar)は同じで、機能的な差はない。差は「ファイル名から中身が分かるか」「エディタ上の見やすさ」といった可読性の面にある。

解決​

プロジェクト全体で mod.rs を排除し、新スタイル(foo.rs + foo/)に統一した。