Hash
Performing a hash on a type.
Derivable: ✅
// 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"); }
-
Allows a type to be used in hash algorithms, most commonly used with data structures like
HashMap. -
Makes it very easy for us to use custom types as the keys in a
HashMap! -
Hashdoesn’t define any of the hashing logic itself, instead it just feeds the type’s data into aHasher. This allows us to use different hash algorithms without changing a type’sHashimpl.