diff options
author | Ilion Beyst <ilion.beyst@gmail.com> | 2022-09-25 11:06:50 +0200 |
---|---|---|
committer | Ilion Beyst <ilion.beyst@gmail.com> | 2022-09-25 11:06:50 +0200 |
commit | b7bcbdd3a6b045692a1850d6b49128e312dffbe7 (patch) | |
tree | a9371c6fce0ddfd9e66827b65594de83bb6ff26a /planetwars-matchrunner/src/pw_match.rs | |
parent | f7261e165bda87dae49c879bdac850479cc20c19 (diff) | |
download | planetwars.dev-b7bcbdd3a6b045692a1850d6b49128e312dffbe7.tar.xz planetwars.dev-b7bcbdd3a6b045692a1850d6b49128e312dffbe7.zip |
propagate PlayerAction::Terminated
Diffstat (limited to 'planetwars-matchrunner/src/pw_match.rs')
-rw-r--r-- | planetwars-matchrunner/src/pw_match.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/planetwars-matchrunner/src/pw_match.rs b/planetwars-matchrunner/src/pw_match.rs index 737aa00..62a07e5 100644 --- a/planetwars-matchrunner/src/pw_match.rs +++ b/planetwars-matchrunner/src/pw_match.rs @@ -1,3 +1,4 @@ +use crate::match_context::RequestError; use crate::match_log::MatchLogMessage; use super::match_context::{MatchCtx, RequestResult}; @@ -89,7 +90,8 @@ impl PwMatch { fn execute_action(&mut self, player_num: usize, turn: RequestResult<Vec<u8>>) -> PlayerAction { let data = match turn { - Err(_timeout) => return PlayerAction::Timeout, + Err(RequestError::Timeout) => return PlayerAction::Timeout, + Err(RequestError::BotTerminated) => return PlayerAction::Terminated, Ok(data) => data, }; @@ -123,6 +125,7 @@ impl PwMatch { PlayerAction::Timeout => self.match_ctx.log(MatchLogMessage::Timeout { player_id: player_id as u32, }), + PlayerAction::Terminated => (), // TODO: should something be logged here? PlayerAction::ParseError { data, error } => { // TODO: can this be handled better? let command = @@ -156,6 +159,7 @@ pub struct PlayerCommand { // TODO: can we name this better? Is this a "play"? pub enum PlayerAction { Timeout, + Terminated, ParseError { data: Vec<u8>, error: serde_json::Error, |