Revert "hash as unsafe bytes"

This reverts commit 47610129ff.
This commit is contained in:
Daniel Olsen 2021-05-17 01:30:34 +02:00
parent 2360986a96
commit c64908621d
2 changed files with 4 additions and 16 deletions

View File

@ -1,4 +1,4 @@
use std::{hash::{Hash, Hasher}, ops::{Deref, DerefMut}};
use std::{hash::Hash, ops::{Deref, DerefMut}};
use rand::prelude::*;
use rand::distributions::WeightedIndex;
//use smallvec::{SmallVec, smallvec};
@ -402,8 +402,8 @@ impl Board {
}
}
#[repr(packed)]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
//#[repr(align(16))]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct Game {
turn: u32,
player: u8,
@ -660,18 +660,6 @@ impl Game {
}
}
unsafe fn any_as_u8_slice<T: Sized>(p: &T) -> &[u8] {
::std::slice::from_raw_parts(
(p as *const T) as *const u8,
::std::mem::size_of::<T>(),
)
}
impl Hash for Game {
fn hash<H: Hasher>(&self, state: &mut H) {
unsafe{any_as_u8_slice(self).deref().hash(state)}
}
}
// Tests

View File

@ -91,7 +91,7 @@ fn calculate_options() -> Result<(), &'static str> {
Ok(())
}
#[cached(size=10_000_000, key = "Game", convert = r#"{ _game }"#)]
#[cached(size=45_000_000, key = "Game", convert = r#"{ _game }"#)]
fn count_options(_game: Game, depth: u8, treshold: u8) -> u128 {
let before = std::time::Instant::now();