From a0bf7bce13aedf188b6bea790eb0afdfa44d92cc Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Tue, 4 May 2021 02:31:16 +0100 Subject: [PATCH] AssetUrlKey: save and restore Signed-off-by: Ian Jackson --- src/bundles.rs | 3 ++- src/global.rs | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/bundles.rs b/src/bundles.rs index 8a9c7eeb..793b5ec8 100644 --- a/src/bundles.rs +++ b/src/bundles.rs @@ -47,7 +47,7 @@ hformat_as_display!{Id} const BUNDLES_MAX: Index = Index(64); -#[derive(Clone)] +#[derive(Clone,Serialize,Deserialize)] pub enum AssetUrlKey { Dummy, Y(AssetUrlKeyRaw), @@ -63,6 +63,7 @@ impl Debug for AssetUrlKey { } } } +impl Default for AssetUrlKey { fn default() -> Self { Self::Dummy } } impl AssetUrlKey { #[throws(IE)] pub fn new_random() -> AssetUrlKey { diff --git a/src/global.rs b/src/global.rs index 22c02f30..952cee4b 100644 --- a/src/global.rs +++ b/src/global.rs @@ -242,6 +242,7 @@ struct InstanceSaveAuxiliary, acl: Acl, pub links: Arc, + asset_url_key: AssetUrlKey, } pub struct PrivateCaller(()); @@ -1062,9 +1063,10 @@ impl InstanceGuard<'_> { ).collect(); let acl = s.c.g.acl.clone().into(); let links = s.c.g.links.clone(); + let asset_url_key = s.c.g.asset_url_key.clone(); let isa = InstanceSaveAuxiliary { ipieces, ioccults, tokens_players, aplayers, acl, links, - pcaliases, + pcaliases, asset_url_key, }; rmp_serde::encode::write_named(w, &isa) })?; @@ -1089,7 +1091,7 @@ impl InstanceGuard<'_> { name: InstanceName) -> Option { let InstanceSaveAuxiliary:: { tokens_players, mut ipieces, ioccults, mut aplayers, acl, links, - pcaliases, + pcaliases, asset_url_key, } = match Self::load_something(&name, "a-") { Ok(data) => data, Err(e) => if (||{ @@ -1160,7 +1162,7 @@ impl InstanceGuard<'_> { tokens_clients: default(), tokens_players: default(), bundle_list: default(), // set by load_game_bundles - asset_url_key: AssetUrlKey::Dummy, + asset_url_key, }; let b = InstanceBundles::load_game_bundles(&mut g)?; -- 2.30.2