change serde field names to make more sense
This commit is contained in:
@@ -675,12 +675,12 @@ where
|
|||||||
"))]
|
"))]
|
||||||
struct SerializedSession<G: Game> {
|
struct SerializedSession<G: Game> {
|
||||||
config: SessionConfig<G::Config>,
|
config: SessionConfig<G::Config>,
|
||||||
state: G,
|
initial_state: G,
|
||||||
history: Vec<G::Instruction>,
|
instructions: Vec<G::Instruction>,
|
||||||
}
|
}
|
||||||
let serialized = SerializedSession::deserialize(deserializer)?;
|
let serialized = SerializedSession::deserialize(deserializer)?;
|
||||||
let mut session = Session::new(serialized.state, serialized.config);
|
let mut session = Session::new(serialized.initial_state, serialized.config);
|
||||||
for instruction in serialized.history {
|
for instruction in serialized.instructions {
|
||||||
session.process_instruction(instruction);
|
session.process_instruction(instruction);
|
||||||
}
|
}
|
||||||
Ok(session)
|
Ok(session)
|
||||||
@@ -725,22 +725,22 @@ where
|
|||||||
"))]
|
"))]
|
||||||
struct SerializedSession<'a, G: Game> {
|
struct SerializedSession<'a, G: Game> {
|
||||||
config: &'a SessionConfig<G::Config>,
|
config: &'a SessionConfig<G::Config>,
|
||||||
state: &'a G,
|
initial_state: &'a G,
|
||||||
history: History<'a, G>,
|
instructions: History<'a, G>,
|
||||||
}
|
}
|
||||||
|
|
||||||
// serialize the initial state of the game.
|
// serialize the initial state of the game.
|
||||||
// if there is history, it is the first snapshot's state,
|
// if there is history, it is the first snapshot's state,
|
||||||
// otherwise it is the current game state since there are no moves.
|
// otherwise it is the current game state since there are no moves.
|
||||||
let state = if let Some(snapshot) = self.state.history.first() {
|
let initial_state = if let Some(snapshot) = self.state.history.first() {
|
||||||
snapshot.state()
|
snapshot.state()
|
||||||
} else {
|
} else {
|
||||||
&self.state.state
|
&self.state.state
|
||||||
};
|
};
|
||||||
let session = SerializedSession {
|
let session = SerializedSession {
|
||||||
config: &self.config,
|
config: &self.config,
|
||||||
state,
|
initial_state,
|
||||||
history: History(&self.state.history),
|
instructions: History(&self.state.history),
|
||||||
};
|
};
|
||||||
session.serialize(serializer)
|
session.serialize(serializer)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,4 +2,4 @@
|
|||||||
source: klondike/src/test.rs
|
source: klondike/src/test.rs
|
||||||
expression: serialized
|
expression: serialized
|
||||||
---
|
---
|
||||||
{"config":{"inner":{"draw_stock":"DrawOne","move_from_foundation":"Allowed","scoring":{"move_to_foundation":10,"flip_up_bonus":5,"move_to_tableau":5,"move_from_foundation":-15,"recycle":0}},"undo_penalty":-15,"solve_moves_budget":100000,"solve_states_budget":100000},"state":{"stock":{"face_down":[52,51,21,59,36,45,49,50,22,3,58,39,41,61,13,57,34,56,28,1,19,12,17,5],"face_up":[]},"foundations":[[],[],[],[]],"tableau1":{"face_down":[],"face_up":[40]},"tableau2":{"face_down":[9],"face_up":[4]},"tableau3":{"face_down":[35,8],"face_up":[60]},"tableau4":{"face_down":[11,27,44],"face_up":[25]},"tableau5":{"face_down":[6,7,23,18],"face_up":[29]},"tableau6":{"face_down":[2,55,10,42,24],"face_up":[54]},"tableau7":{"face_down":[26,43,38,53,37,33],"face_up":[20]}},"history":[336,100,720,619,606,6,720,19,16,388,497,580,388,720,139,720,19,720,17,31,720,720,720,7,720,720,523,458,720,720,720,720,720,720,720,720,43,43,720,720,720,139,720,19,720,43,720,43,720,720,720,720,720,720,720,720,720,623,619,720,720,720,720,720,720,720,720,720,720,693,281,333,253,209,113,87,720,720,720,720,720,720,720,720,75,223,619,533,74,2,720,116,331,279,279,305,305,29,25,24,12,37,25,222,24,42,126,471,720,720,720,362,292,331,253,720,19,720,183,151,12,67,336,61,93,235,720,7,2,0,7,38,26,14,27,15,26,36,0,7,3,6,18,43,36,24,12,0,1,19,38,26,39,27,15,38,26,36]}
|
{"config":{"inner":{"draw_stock":"DrawOne","move_from_foundation":"Allowed","scoring":{"move_to_foundation":10,"flip_up_bonus":5,"move_to_tableau":5,"move_from_foundation":-15,"recycle":0}},"undo_penalty":-15,"solve_moves_budget":100000,"solve_states_budget":100000},"initial_state":{"stock":{"face_down":[52,51,21,59,36,45,49,50,22,3,58,39,41,61,13,57,34,56,28,1,19,12,17,5],"face_up":[]},"foundations":[[],[],[],[]],"tableau1":{"face_down":[],"face_up":[40]},"tableau2":{"face_down":[9],"face_up":[4]},"tableau3":{"face_down":[35,8],"face_up":[60]},"tableau4":{"face_down":[11,27,44],"face_up":[25]},"tableau5":{"face_down":[6,7,23,18],"face_up":[29]},"tableau6":{"face_down":[2,55,10,42,24],"face_up":[54]},"tableau7":{"face_down":[26,43,38,53,37,33],"face_up":[20]}},"instructions":[336,100,720,619,606,6,720,19,16,388,497,580,388,720,139,720,19,720,17,31,720,720,720,7,720,720,523,458,720,720,720,720,720,720,720,720,43,43,720,720,720,139,720,19,720,43,720,43,720,720,720,720,720,720,720,720,720,623,619,720,720,720,720,720,720,720,720,720,720,693,281,333,253,209,113,87,720,720,720,720,720,720,720,720,75,223,619,533,74,2,720,116,331,279,279,305,305,29,25,24,12,37,25,222,24,42,126,471,720,720,720,362,292,331,253,720,19,720,183,151,12,67,336,61,93,235,720,7,2,0,7,38,26,14,27,15,26,36,0,7,3,6,18,43,36,24,12,0,1,19,38,26,39,27,15,38,26,36]}
|
||||||
|
|||||||
Reference in New Issue
Block a user