>>960
Rustはファイル分割の自由度が高く簡単に分割することが可能
分割するか否かは自分やプロジェクトの方針次第
最初はmain.rs一つから始めて進行とともに分割していく方針でも構わない

名前空間としてはファイル名がそのままモジュール名となる
その同名ディレクトリを作ればその下のファイルがサブモジュールになる
いずれもmod foo;と書くだけで使えるようになる
あとはfoo::TypeNameやfoo::boo::func_nameで自由に使える
長くて面倒ならuse foo::boo::func_name;すればfunc_nameで使える

ただしモジュール側ではモジュール外で使えるようにpub宣言が必要
逆に言えばpub宣言しなければモジュール内にプライベートにできる
pub宣言はpub(crate)やpub(super)など公開範囲の制限も可能

以上がモジュール分割
その一部を複数のプロジェクトから使えるライブラリとして独立させたくなったらクレート分割
クレートは並列コンパイル単位にもなるので専属利用でも敢えてクレート分割することもある
他にも構文解析木を入出力とする手続きマクロを作るときも単独クレート化が必須