imperator_save/models/
gamestate.rs1use crate::{file::ImperatorDeserializer, models::MetadataOwned, ImperatorError};
2use jomini::binary::TokenResolver;
3use serde::Deserialize;
4
5#[derive(Debug)]
6pub struct Save {
7 pub meta: MetadataOwned,
8 pub gamestate: GameState,
9}
10
11impl Save {
12 pub fn from_deserializer<R>(
13 deser: &ImperatorDeserializer,
14 resolver: &R,
15 ) -> Result<Self, ImperatorError>
16 where
17 R: TokenResolver,
18 {
19 let meta = deser.build(resolver)?;
20 let gamestate = deser.build(resolver)?;
21 Ok(Save { meta, gamestate })
22 }
23}
24
25#[derive(Debug, Deserialize)]
26pub struct GameState {
27 pub speed: i32,
28}