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