weiss_core/state/
stack.rs1use serde::{Deserialize, Serialize};
2
3use crate::db::CardId;
4use crate::effects::{EffectId, EffectPayload};
5
6use super::TimingWindow;
7
8#[derive(Clone, Debug, Hash, Serialize, Deserialize)]
10pub struct StackItem {
11 pub id: u32,
13 pub controller: u8,
15 pub source_id: CardId,
17 pub effect_id: EffectId,
19 pub payload: EffectPayload,
21}
22
23#[derive(Clone, Debug, Hash, Serialize, Deserialize)]
25pub struct PriorityState {
26 pub holder: u8,
28 pub passes: u8,
30 pub window: TimingWindow,
32 pub used_act_mask: u32,
34}
35
36#[derive(Clone, Debug, Hash, Serialize, Deserialize)]
38pub struct StackOrderState {
39 pub group_id: u32,
41 pub controller: u8,
43 pub items: Vec<StackItem>,
45}