クレート
クレートはRustにおける編集ユニットです。rustc some_file.rsが呼び出された時、
some_file.rs はクレートファイルとして扱われます。もしsome_file.rs内にmod
宣言があれば、モジュールファイルの要素がコンパイラを実行する前に挿入されます。
言い換えれば、モジュールは独立してコンパイルされず、クレートのみがコンパイルされる
ということです。
クレートはバイナリまたはライブラリとしてコンパイルできます。デフォルトで、rustc
はクレートからバイナリを作ります。このふるまいは--crate-typeフラグにlibを立てる
ことによって上書きできます。