key型の変種EqとHashトレイトを実装している型ならば、なんでもHashMapのキーになることができます。Stringをキーにしたハッシュマップを作製した場合、.get()メソッドの引数に&strを与えて値を取得することができます。)f32とf64はHashを実装していないことに注意しましょう。これは浮動小数点演算時に誤差が発生するため、キーとして使用すると、恐ろしいほどエラーの元となるためです。集合型は、その要素となっている全ての型がEqを、あるいはHashを実装している場合、必ず同じトレイトを実装しています。Vec<T>はTがHashを実装している場合、Hashを実装します。独自の型にEqあるいはHashを実装するのは簡単です。以下の一行で済みます。Hash)]後はコンパイラがよしなにしてくれます。これらのトレイトの詳細をコントロールしたい場合、EqやHashを自分で実装することもできます。この文書ではHashトレイトを実装する方法の詳細については触れません。structをHashMapで扱う際の例として、とてもシンプルなユーザーログインシステムを作成してみましょう。Eqトレイトを使用する時は、PartialEqをderiveする必要があります。