定義することができます。)記法で参照できます。これらサブモジュールは親モジュール配下の名前空間になるため、名前は競合しません。あったとしても、明確に区別されます。名付けられているため、Cargoはこのクレートをライブラリとしてビルドします。コンパイルされたクレートです。このクレートを他のクレートから使う方法を見る前に、複数のファイルに分割してみましょう。複数のファイルによるクレート各クレートがただ1つのファイルからなるのであれば、これらファイルは非常に大きくなってしまうでしょう。クレートを複数のファイルに分けた方が楽になるため、Rustは2つの方法でこれをサポートしています。モジュールの内容はここに}以下のようなモジュールが宣言できます。ファイルのどちらかにモジュールの内容があるだろうと予想します。それらのファイルの中でモジュールの再宣言を行う必要がないことに気をつけて下さい。宣言にてそれは済んでいます。これら2つのテクニックを用いて、クレートを2つのディレクトリと7つのファイルに分解できます。クレートのルートで、以下のようになっています。どちらかを見よと伝えています。今回の場合、サブモジュールがあるため私たちは後者を選択しました。両方とも以下のようになっています。どちらかを見よと伝えています。中身は現在全て空です。幾つか関数を追加しましょう。