summaryrefslogtreecommitdiff
path: root/engine/src/info.rs
blob: 4588941045731c38e4cf639432eb4764d111e3ac (plain)
use std::marker::PhantomData;
use std::time::Instant;

use model::Move;

use crate::Evaluation;

#[derive(Debug, Clone, Copy)]
pub struct EvalInfo {
	pub start_time: Instant,
	pub nodes_searched: usize,
	pub evaluation: Evaluation,
	pub current_best_move: Option<Move>,
	pub current_depth: u8,
	pub(crate) _unused: PhantomData<()>,
}

impl EvalInfo {
	pub fn nodes_per_second(&self) -> usize {
		let elapsed = self.start_time.elapsed().as_secs_f64();
		(self.nodes_searched as f64 / elapsed) as usize
	}

	pub fn elapsed_milliseconds(self) -> u32 {
		self.start_time.elapsed().as_millis() as u32
	}
}