summaryrefslogtreecommitdiff
path: root/engine/src/info.rs
diff options
context:
space:
mode:
Diffstat (limited to 'engine/src/info.rs')
-rwxr-xr-xengine/src/info.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/engine/src/info.rs b/engine/src/info.rs
new file mode 100755
index 0000000..4588941
--- /dev/null
+++ b/engine/src/info.rs
@@ -0,0 +1,27 @@
+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
+ }
+}