diff --git a/src/models/battle_results.rs b/src/models/battle_results.rs index ccab513..7579d27 100644 --- a/src/models/battle_results.rs +++ b/src/models/battle_results.rs @@ -1,5 +1,5 @@ use prost::bytes::Buf; -use prost::Message; +use prost::{Enumeration, Message}; use serde::Serialize; use crate::result::Result; @@ -22,7 +22,7 @@ pub struct BattleResults { #[prost(int64, tag = "2")] pub timestamp: i64, - #[prost(enumeration = "TeamNumber", tag = "3")] + #[prost(enumeration = "WinnerTeamNumber", tag = "3")] pub winner_team_number: i32, /// Replay's author results. @@ -78,15 +78,21 @@ pub struct PlayerInfo { pub avatar: Avatar, } -#[derive( - Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, prost::Enumeration, Serialize, -)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Enumeration, Serialize)] #[repr(i32)] pub enum TeamNumber { One = 1, Two = 2, } +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, Enumeration, Serialize)] +#[repr(i32)] +pub enum WinnerTeamNumber { + Neither = 0, + One = 1, + Two = 2, +} + /// Player's battle results. #[derive(Message, Serialize)] pub struct PlayerResults { diff --git a/tests/battle_results.rs b/tests/battle_results.rs index cf4bde5..a4ccfe7 100644 --- a/tests/battle_results.rs +++ b/tests/battle_results.rs @@ -117,3 +117,11 @@ fn victory_points_ok() -> Result<()> { Ok(()) } + +#[test] +fn draw_ok() -> Result<()> { + let battle_results = Replay::open(File::open("tests/replays/20230503_0027__helaas_pindakaas_A140_ASTRON_REX_105_2319058483532631656.wotbreplay")?)? + .read_battle_results()?; + assert_eq!(battle_results.winner_team_number, 0); + Ok(()) +} diff --git a/tests/replays/20230503_0027__helaas_pindakaas_A140_ASTRON_REX_105_2319058483532631656.wotbreplay b/tests/replays/20230503_0027__helaas_pindakaas_A140_ASTRON_REX_105_2319058483532631656.wotbreplay new file mode 100644 index 0000000..0b65637 Binary files /dev/null and b/tests/replays/20230503_0027__helaas_pindakaas_A140_ASTRON_REX_105_2319058483532631656.wotbreplay differ