mirror of
https://github.com/eigenein/wotbreplay-parser.git
synced 2026-10-24 11:49:48 +02:00
Break: read some of data.wotreplay
This commit is contained in:
1 parent
8e96f4847b
commit
615537ce45
10 files changed
+200
-41
No files matched your search
+8
-14
@@ -2,10 +2,9 @@ use std::io::{Read, Seek};
|
||||
|
||||
use zip::ZipArchive;
|
||||
|
||||
use crate::error::Error;
|
||||
#[cfg(feature = "meta")]
|
||||
use crate::models::Meta;
|
||||
use crate::models::{BattleResults, BattleResultsDat};
|
||||
use crate::models::{BattleResults, BattleResultsDat, Data};
|
||||
use crate::result::Result;
|
||||
|
||||
/// Opened (but not yet parsed) replay.
|
||||
@@ -14,9 +13,7 @@ pub struct Replay<R>(pub(crate) ZipArchive<R>);
|
||||
impl<R: Read + Seek> Replay<R> {
|
||||
/// Opens a replay from the reader which contains a `*.wotbreplay`.
|
||||
pub fn open(reader: R) -> Result<Self> {
|
||||
ZipArchive::new(reader)
|
||||
.map_err(Error::OpenArchiveFailed)
|
||||
.map(Self)
|
||||
Ok(Self(ZipArchive::new(reader)?))
|
||||
}
|
||||
|
||||
/// Reads and parses the battle results from the replay.
|
||||
@@ -26,19 +23,16 @@ impl<R: Read + Seek> Replay<R> {
|
||||
|
||||
/// Reads and parses the included `battle_results.dat`.
|
||||
pub fn read_battle_results_dat(&mut self) -> Result<BattleResultsDat> {
|
||||
let pickled_battle_results = self
|
||||
.0
|
||||
.by_name("battle_results.dat")
|
||||
.map_err(Error::OpenEntryFailed)?;
|
||||
let pickled_battle_results = self.0.by_name("battle_results.dat")?;
|
||||
BattleResultsDat::from_reader(pickled_battle_results)
|
||||
}
|
||||
|
||||
#[cfg(feature = "meta")]
|
||||
pub fn read_meta(&mut self) -> Result<Meta> {
|
||||
Meta::from_reader(
|
||||
self.0
|
||||
.by_name("meta.json")
|
||||
.map_err(Error::OpenEntryFailed)?,
|
||||
)
|
||||
Meta::from_reader(self.0.by_name("meta.json")?)
|
||||
}
|
||||
|
||||
pub fn read_data(&mut self) -> Result<Data> {
|
||||
Data::from_reader(self.0.by_name("data.wotreplay")?)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user