File size: 1,051 Bytes
463f868
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9bd4ce5
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
29
30
31
32
33
34

use engine_rust::core::enums::ChoiceType;
use engine_rust::core::enums::*;
use engine_rust::core::logic::{AbilityContext, GameState, PendingInteraction};

fn main() {
    println!("--- Testing GameState Serialization Robustness ---");

    let mut gs = GameState::default();
    gs.turn = 5;
    gs.phase = Phase::Response;
    gs.current_player = 1;

    let pending = PendingInteraction {
        effect_opcode: 41,
        card_id: 123,
        ability_index: 0,
        ctx: AbilityContext {
            player_id: 1,
            ..Default::default()
        },
        choice_type: ChoiceType::LookAndChoose,
        ..Default::default()
    };
    gs.interaction_stack.push(pending);

    let serialized = serde_json::to_string(&gs).expect("Failed to serialize");
    println!("Serialized length: {}", serialized.len());

    let deserialized: GameState = serde_json::from_str(&serialized).expect("Failed to deserialize");
    assert_eq!(deserialized.turn, 5);
    
    println!("Serialization test passed!");
}