Break: add initial meta.json support

This commit is contained in:
eigenein committed 2023-04-24 22:38:23 +02:00
1 parent 903cd00f32
commit 14148c7410
10 files changed
+71 -19

No files matched your search

+2 -6
View File
@@ -35,17 +35,13 @@ impl BattleResultsDat {
pub fn from_reader(reader: impl Read) -> Result<Self> {
serde_pickle::from_reader(reader, Default::default()).map_err(Error::UnpickleFailed)
}
/// Decodes the battle results from the internal buffer.
pub fn decode_battle_results(&self) -> Result<BattleResults> {
BattleResults::decode(self.buffer.as_ref()).map_err(Error::DecodeFailed)
}
}
impl TryInto<BattleResults> for BattleResultsDat {
type Error = Error;
/// Decodes the battle results from the internal buffer.
fn try_into(self) -> Result<BattleResults> {
self.decode_battle_results()
BattleResults::decode(self.buffer.as_ref()).map_err(Error::DecodeFailed)
}
}
+28
View File
@@ -0,0 +1,28 @@
use std::io::Read;
use serde::Deserialize;
use crate::error::Error;
use crate::result::Result;
/// The model for `meta.json`.
#[derive(Deserialize)]
pub struct Meta {
#[serde(rename = "playerName")]
pub player_name: String,
#[serde(rename = "arenaUniqueId")]
pub arena_unique_id: String,
#[serde(rename = "battleDuration")]
pub battle_duration_secs: f64,
#[serde(rename = "vehicleCompDescriptor")]
pub tank_id: u16,
}
impl Meta {
pub fn from_reader(reader: impl Read) -> Result<Self> {
serde_json::from_reader(reader).map_err(Error::JsonDecodeFailed)
}
}