feat: add serde for necessary fields

This commit is contained in:
2026-08-14 18:30:00 +02:00
parent 7b4fc568a1
commit 7895919f87
6 changed files with 23 additions and 14 deletions

17
Cargo.lock generated
View File

@@ -9,6 +9,7 @@ dependencies = [
"env_logger",
"log",
"rand",
"serde",
"uuid",
]
@@ -480,31 +481,32 @@ checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd"
[[package]]
name = "serde"
version = "1.0.228"
version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
dependencies = [
"serde_core",
"serde_derive",
]
[[package]]
name = "serde_core"
version = "1.0.228"
version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.228"
version = "1.0.229"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.119",
"syn 3.0.3",
]
[[package]]
@@ -594,6 +596,7 @@ checksum = "bf3923a6f5c4c6382e0b653c4117f48d631ea17f38ed86e2a828e6f7412f5239"
dependencies = [
"getrandom",
"js-sys",
"serde_core",
"wasm-bindgen",
]

View File

@@ -13,9 +13,8 @@ edition = "2024"
env_logger = "0.11.11"
log = "0.4.33"
rand = "0.10.2"
serde = { version = "1.0.229", features = ["derive"] }
[dependencies.uuid]
version = "1.24.0"
features = [
"v4",
]
features = ["serde", "v4"]

View File

@@ -11,6 +11,9 @@ use std::ops::{Index, IndexMut};
use log::{debug, error, info, trace, warn};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
pub struct Board {
board: Vec<Field>,
pub size: usize,

View File

@@ -1,8 +1,10 @@
use std::fmt;
use serde::{Deserialize, Serialize};
use crate::logic::{board::pawn::Pawn, math::position::Position};
#[derive(Debug, PartialEq, Eq)]
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Field {
pub position: Position,
pub pawn: Option<Pawn>,

View File

@@ -1,8 +1,9 @@
use serde::{Deserialize, Serialize};
use uuid::Uuid;
use crate::logic::{math::position::Position, player::Player};
#[derive(PartialEq, Eq, Debug)]
#[derive(PartialEq, Eq, Debug, Serialize, Deserialize)]
pub enum PawnState {
Man,
Dame,
@@ -10,7 +11,7 @@ pub enum PawnState {
}
/// Basic pawn
#[derive(Debug, PartialEq, Eq)]
#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Pawn {
pub state: PawnState,
pub owner: Uuid,

View File

@@ -2,10 +2,11 @@ use core::fmt;
use std::ops::Sub;
use log::{debug, trace};
use serde::{Deserialize, Serialize};
use crate::logic::math::vector::Vector2D;
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
#[derive(Clone, Copy, PartialEq, Eq, Debug, Serialize, Deserialize)]
/// Position on the board. Consists of row and column. Should be treated like a point in space on
/// unsigned grid.
///