From 679b0ddadf56dfc93e194081ab9e45504f6a6b93 Mon Sep 17 00:00:00 2001 From: Pavel Perestoronin Date: Sat, 3 Dec 2022 17:49:47 +0100 Subject: [PATCH] Opt: avoid the buffer allocation, use a reader --- src/replay.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/replay.rs b/src/replay.rs index 7b0e820..bcc291e 100644 --- a/src/replay.rs +++ b/src/replay.rs @@ -18,16 +18,12 @@ impl Replay { } pub fn read_battle_results(&mut self) -> Result { - let mut pickled_battle_results = self + let pickled_battle_results = self .0 .by_name("battle_results.dat") .map_err(Error::OpenBattleResultsFailed)?; - let mut serialized_battle_results = Vec::new(); - pickled_battle_results - .read_to_end(&mut serialized_battle_results) - .map_err(Error::ReadEntryFailed)?; let battle_results_dat: BattleResultsDat = - serde_pickle::from_slice(&serialized_battle_results, Default::default()) + serde_pickle::from_reader(pickled_battle_results, Default::default()) .map_err(Error::UnpickleFailed)?; BattleResults::decode(battle_results_dat.1.as_ref()).map_err(Error::DecodeFailed) }