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

View File

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

View File

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

View File

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

View File

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

View File

@@ -2,10 +2,11 @@ use core::fmt;
use std::ops::Sub; use std::ops::Sub;
use log::{debug, trace}; use log::{debug, trace};
use serde::{Deserialize, Serialize};
use crate::logic::math::vector::Vector2D; 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 /// Position on the board. Consists of row and column. Should be treated like a point in space on
/// unsigned grid. /// unsigned grid.
/// ///