Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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: "Алиса".into() };
    let mut map = HashMap::new();
    map.insert(user, "value");
}
  • Позволяет использовать тип в алгоритмах хеширования; чаще всего используется со структурами данных вроде HashMap.

  • Очень упрощает использование собственных типов как ключей в HashMap!

  • Hash сам не определяет логику хеширования; вместо этого он передаёт данные типа в Hasher. Это позволяет использовать разные алгоритмы хеширования, не меняя реализацию Hash для типа.