use crate::command::Command; pub struct GameState { players: [Player; 2], } pub struct Player {} impl GameState { fn update(&mut self, commands: [Command; 2]) { self.do_command(0, &commands[0]); self.do_command(1, &commands[1]); self.update_player_collisions(); self.update_player_travel(); } fn do_command(&mut self, player_index: usize, command: &Command) { use Command::*; match command { Nothing => {} Accelerate => unimplemented!(), Decelerate => unimplemented!(), TurnLeft => unimplemented!(), TurnRight => unimplemented!(), UseBoost => unimplemented!(), UseOil => unimplemented!(), } } fn update_player_collisions(&mut self) { //TODO } fn update_player_travel(&mut self) { //TODO } }