pub fn hash<T, S>(hashee: *const T, into: &mut S) where S: Hasher, T: ?Sized,
Hash a raw pointer.
This can be used to hash a &T
reference (which coerces to *const T
implicitly) by its address rather than the value it points to (which is what the Hash for &T
implementation does).
use std::collections::hash_map::DefaultHasher; use std::hash::{Hash, Hasher}; use std::ptr; let five = 5; let five_ref = &five; let mut hasher = DefaultHasher::new(); ptr::hash(five_ref, &mut hasher); let actual = hasher.finish(); let mut hasher = DefaultHasher::new(); (five_ref as *const i32).hash(&mut hasher); let expected = hasher.finish(); assert_eq!(actual, expected);
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/ptr/fn.hash.html