use crate::logic::{GameState, Mark};
#[derive(Clone, Copy, Eq, PartialEq, Debug)]
pub struct GameMove {
mark: Mark,
cell_index: usize,
before_state: GameState,
after_state: GameState,
}
impl GameMove {
pub fn new(
mark: Mark,
cell_index: usize,
before_state: GameState,
after_state: GameState,
) -> Self {
GameMove {
mark,
cell_index,
before_state,
after_state,
}
}
pub fn mark(&self) -> &Mark {
&self.mark
}
pub fn cell_index(&self) -> usize {
self.cell_index
}
pub fn before_state(&self) -> &GameState {
&self.before_state
}
pub fn after_state(&self) -> &GameState {
&self.after_state
}
}