Hash

型に対してハッシュ化を行います。

derive 可能: ✅

// Copyright 2025 Google LLC
// SPDX-License-Identifier: Apache-2.0

use std::collections::HashMap;

#[derive(PartialEq, Eq, Hash)]
pub struct User {
    id: u32,
    name: String,
}

fn main() {
    let user = User { id: 1, name: "Alice".into() };
    let mut map = HashMap::new();
    map.insert(user, "value");
}
  • 型をハッシュアルゴリズムで使用できるようにします。最も一般的には、HashMap のようなデータ構造で使われます。

  • HashMap のキーとしてカスタム型を使うのが非常に簡単になります!

  • Hash 自体はハッシュ化ロジックを何も定義せず、代わりに型のデータを Hasher に渡すだけです。これにより、型の Hash impl を変更することなく、異なるハッシュアルゴリズムを使用できます。