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

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.
///