1use crate::player::Player; 2 3pub trait State: Sized { 4 fn turn(&self) -> Player; 5 fn winner(&self) -> Option<Player>; 6 fn valid_moves(&self) -> impl Iterator<Item = Self>; 7}