ほとんどのプログラムは、何らかのライブラリに依存しています。それらを手作業で管理するのは骨が折れることもあります。幸いなことに、Rustのエコシステムにはcargoが標準で付属しています! cargoはプロジェクトの依存関係を管理してくれます。
Rustでは、外部パッケージはよく「クレート」と呼ばれます。クレートはRustにおけるコンパイル単位です。クレートはバイナリにもライブラリにもコンパイルできます。
ほとんどの場合、外部依存を追加するのは、Cargo.tomlファイルに1行追加するだけです。
この演習では、enum-iteratorとint-enumの依存関係があらかじめ追加されています。
Raspberry Piで何かを作ろうとするとき、たいていは_抵抗器_を使うでしょう。この演習では、抵抗器について2つのことを知っておく必要があります。
この問題を回避するために、メーカーは抵抗器に色分けされたバンドを印刷し、抵抗値を示しています。各バンドには位置と数値があります。
抵抗器の最初の2本のバンドには、単純な符号化の仕組みがあります。それぞれの色が1つの数値に対応します。
この演習では、バンドの値を覚えなくても済むように、便利なプログラムを作ります。
色は次のように符号化されています。
この演習の目標は、次のことを実現する方法を作ることです。
1つ目のタスクでは外部クレートint-enumが必要で、3つ目のタスクではenum-iteratorが必要です。どちらもこの演習のCargo.tomlにすでに含まれています。使い方を知るために、これらのクレートのドキュメントを確認してください。2つ目のタスクは、列挙型のDebugトレイトのデフォルト実装を調べると完成できます。
語呂合わせは色を数値に対応付けるもので、それらの数値は配列に格納すると、配列内のインデックスと一致します。Better Be Right Or Your Great Big Values Go Wrong.
抵抗器の色分けについての詳しい情報は、電子カラーコードのWikipedia記事にあります。