use crate::{eval::Evaluation, CheckersBitBoard};
use model::Move;
use parking_lot::RwLock;
use std::num::NonZeroU8;
#[derive(Copy, Clone, Debug)]
struct TranspositionTableEntry {
board: CheckersBitBoard,
eval: Evaluation,
best_move: Move,
depth: NonZeroU8,
}
impl TranspositionTableEntry {
const fn new(
board: CheckersBitBoard,
eval: Evaluation,
best_move: Move,
depth: NonZeroU8,
) -> Self {
Self {
board,
eval,
best_move,
depth,
}
}
}
pub struct TranspositionTable {
replace_table: Box<[RwLock