imperator_save/models/
gamestate.rs

1use 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}