Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::collections::hash_map::DefaultHasher;
- use std::hash::Hash;
- pub trait Hash2 {
- fn hash2(&self, state: &mut DefaultHasher);
- }
- pub fn doit(h: &mut DefaultHasher, a: &dyn Hash2, b: &dyn Hash2) -> bool {
- a.hash2(h) == b.hash2(h)
- }
- impl<T> Hash2 for T
- where
- T: Hash,
- {
- fn hash2(&self, state: &mut DefaultHasher) {
- self.hash(state)
- }
- }
- #[test]
- fn check() {
- let mut hasher = DefaultHasher::new();
- assert!(doit(&mut hasher, &5, &5));
- assert_false!(doit(&mut hasher, &5, &5.0));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement