diff --git a/src/azul.rs b/src/azul.rs index c02dca6..c89a527 100644 --- a/src/azul.rs +++ b/src/azul.rs @@ -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(p: &T) -> &[u8] { - ::std::slice::from_raw_parts( - (p as *const T) as *const u8, - ::std::mem::size_of::(), - ) -} -impl Hash for Game { - fn hash(&self, state: &mut H) { - unsafe{any_as_u8_slice(self).deref().hash(state)} - } - -} // Tests diff --git a/src/main.rs b/src/main.rs index 025f162..f03c420 100644 --- a/src/main.rs +++ b/src/main.rs @@ -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();