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/)に統一した。