From 602de3ced48605847d4f22c7cbe425e6f94772b3 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 3 Aug 2020 00:12:32 +0100 Subject: [PATCH] tolerate missing a-* file as intended --- src/global.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/global.rs b/src/global.rs index b2d04f2b..c964170b 100644 --- a/src/global.rs +++ b/src/global.rs @@ -171,7 +171,7 @@ pub struct InstanceContainer { g : Instance, } -#[derive(Debug,Serialize,Deserialize)] +#[derive(Debug,Default,Serialize,Deserialize)] struct InstanceSaveAccesses { tokens_players : Vec<(RawTokenStr, PlayerId)>, } @@ -624,7 +624,13 @@ impl InstanceGuard<'_> { // xxx check for deleted players, throw their tokens away let gs : GameState = Self::load_something(&name, "g-")?; let mut al : InstanceSaveAccesses - = Self::load_something(&name, "a-")?; + = Self::load_something(&name, "a-") + .or_else(|e:ServerFailure| match e { + ServerFailure::IO(ioe) if ioe.kind() == io::ErrorKind::NotFound => { + Ok(Default::default()) + }, + e => Err(e), + })?; let mut updates : SecondarySlotMap<_,_> = Default::default(); for player in gs.players.keys() { updates.insert(player, Default::default()); -- 2.30.2