libtombala/
types.rs

1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3#[derive(Deserialize, Serialize, Clone, Debug)]
4pub enum Winning {
5    C1(Vec<u32>),
6    C2(Vec<u32>),
7    T(Vec<u32>),
8}
9#[derive(Debug, Serialize, Deserialize, Default, Clone)]
10pub(crate) struct CardIndex(pub(crate) HashMap<u8, Vec<Cardinfo>>); //number to card info
11
12#[derive(Debug, Serialize, Deserialize, Clone)]
13pub(crate) enum Row {
14    R1,
15    R2,
16    R3,
17}
18#[derive(Debug, Serialize, Deserialize, Clone)]
19pub(crate) struct Cardinfo {
20    pub card_id: u32,
21    pub row: Row,
22}
23#[derive(Default, Serialize, Deserialize, Clone, Debug)]
24pub(crate) struct State(pub(crate) HashMap<u32, SingleCardState>); //card id to card state
25#[derive(Default, Debug, Serialize, Deserialize, Clone)]
26pub(crate) struct SingleCardState {
27    pub r1: u8,
28    pub r2: u8,
29    pub r3: u8,
30}
31pub type Card = (u32, [u8; 9], [u8; 9], [u8; 9]); //(id,row1,row2,row3)