use crate::engine_eval::EngineEval;
use std::fmt;
#[derive(Debug)]
pub struct EngineOutput {
eval: EngineEval,
best_move: String,
pondered_move: Option<String>,
depth: u32,
}
impl EngineOutput {
#[must_use]
pub fn new(eval: EngineEval, best_move: String, pondered_move: Option<String>, depth: u32) -> Self {
Self { eval, best_move, pondered_move, depth }
}
#[must_use]
pub fn eval(&self) -> EngineEval {
self.eval
}
#[must_use]
pub fn best_move(&self) -> &String {
&self.best_move
}
#[must_use]
pub fn pondered_move(&self) -> &Option<String> {
&self.pondered_move
}
#[must_use]
pub fn depth(&self) -> u32 {
self.depth
}
}
impl fmt::Display for EngineOutput {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.eval.to_string() + "_" + &self.best_move.to_string())
}
}