From 7ffc399d47ec9a3c161abeafe9e3591cbf15a227 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 27 Sep 2025 17:34:55 +0200 Subject: remove bincode support everywhere --- server/protocol/src/book.rs | 14 ++++----- server/protocol/src/lib.rs | 77 ++++++++++++++------------------------------- 2 files changed, 30 insertions(+), 61 deletions(-) (limited to 'server/protocol/src') diff --git a/server/protocol/src/book.rs b/server/protocol/src/book.rs index 02dfa425..a8ab5792 100644 --- a/server/protocol/src/book.rs +++ b/server/protocol/src/book.rs @@ -17,16 +17,15 @@ */ use crate::Message; -use bincode::{Decode, Encode}; use glam::Vec2; use serde::{Deserialize, Serialize}; -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] +#[derive(Debug, Clone, Serialize, Deserialize)] pub struct Book { pub pages: Vec, } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] +#[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "snake_case", tag = "page_type")] pub enum BookPage { Cover, @@ -43,21 +42,20 @@ pub enum BookPage { }, } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode, Default)] +#[derive(Debug, Clone, Serialize, Deserialize, Default)] pub struct Diagram { pub nodes: Vec, pub edges: Vec, } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] +#[derive(Debug, Clone, Serialize, Deserialize)] pub struct DiagramNode { - #[bincode(with_serde)] pub position: Vec2, pub label: Message, pub style: NodeStyle, } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] +#[derive(Debug, Clone, Serialize, Deserialize)] pub enum NodeStyle { IntermediateProduct, FinalProduct, @@ -66,7 +64,7 @@ pub enum NodeStyle { ProcessInstant, } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] +#[derive(Debug, Clone, Serialize, Deserialize)] pub struct DiagramEdge { pub src: usize, pub dst: usize, diff --git a/server/protocol/src/lib.rs b/server/protocol/src/lib.rs index 146a5a92..90106317 100644 --- a/server/protocol/src/lib.rs +++ b/server/protocol/src/lib.rs @@ -15,10 +15,6 @@ along with this program. If not, see . */ -use bincode::{ - config::{standard, Configuration, Limit, LittleEndian, Varint}, - Decode, Encode, -}; use glam::{IVec2, Vec2}; use serde::{Deserialize, Deserializer, Serialize}; use std::{collections::HashSet, sync::LazyLock}; @@ -44,48 +40,35 @@ fn test_version_parse() { let _ = *VERSION; } -pub const BINCODE_CONFIG: Configuration> = - standard().with_limit(); - -#[derive( - Debug, Clone, Copy, Serialize, Deserialize, Encode, Decode, PartialEq, Eq, PartialOrd, Ord, Hash, -)] +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] #[serde(transparent)] pub struct PlayerID(#[serde(deserialize_with = "deser_i64")] pub i64); -#[derive( - Debug, Clone, Copy, Serialize, Deserialize, Encode, Decode, PartialEq, Eq, PartialOrd, Ord, Hash, -)] +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] #[serde(transparent)] pub struct ItemIndex(#[serde(deserialize_with = "deser_usize")] pub usize); -#[derive( - Debug, Clone, Copy, Serialize, Deserialize, Encode, Decode, PartialEq, Eq, PartialOrd, Ord, Hash, -)] +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] #[serde(transparent)] pub struct TileIndex(#[serde(deserialize_with = "deser_usize")] pub usize); -#[derive( - Debug, Clone, Copy, Serialize, Deserialize, Encode, Decode, PartialEq, Eq, PartialOrd, Ord, Hash, -)] +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] #[serde(transparent)] pub struct RecipeIndex(#[serde(deserialize_with = "deser_usize")] pub usize); -#[derive( - Debug, Clone, Copy, Serialize, Deserialize, Encode, Decode, PartialEq, Eq, PartialOrd, Ord, Hash, -)] +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] #[serde(transparent)] pub struct DemandIndex(#[serde(deserialize_with = "deser_usize")] pub usize); -#[derive(Debug, Clone, Copy, Serialize, Deserialize, Encode, Decode, PartialEq, Eq, Hash)] +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Hash)] #[serde(transparent)] pub struct Hand(#[serde(deserialize_with = "deser_usize")] pub usize); -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] +#[derive(Debug, Clone, Serialize, Deserialize)] pub struct MapMetadata { pub name: String, pub players: usize, pub difficulty: i32, } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] +#[derive(Debug, Clone, Serialize, Deserialize)] pub struct Demand { pub input: ItemIndex, pub output: Option, @@ -93,7 +76,7 @@ pub struct Demand { pub points: i64, } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode, Default)] +#[derive(Debug, Clone, Serialize, Deserialize, Default)] #[rustfmt::skip] pub struct Gamedata { pub current_map: String, @@ -108,7 +91,7 @@ pub struct Gamedata { pub hand_count: usize, } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] +#[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "snake_case", tag = "type")] pub enum PacketS { Join { @@ -116,10 +99,9 @@ pub enum PacketS { character: Character, #[serde(default = "chef_class")] class: PlayerClass, - #[serde(skip)] // TODO fix bincode can still set id + #[serde(skip)] id: Option, // used entity bots that cant receive a response - #[serde(skip)] // TODO fix bincode aswell - #[bincode(with_serde)] + #[serde(skip)] position: Option, // used entity bots that spawn in different locations }, Leave { @@ -127,17 +109,14 @@ pub enum PacketS { }, Movement { player: PlayerID, - #[bincode(with_serde)] dir: Vec2, boost: bool, - #[bincode(with_serde)] pos: Option, }, Interact { player: PlayerID, hand: Hand, #[serde(deserialize_with = "deser_ivec2_opt", default)] - #[bincode(with_serde)] pos: Option, }, Communicate { @@ -156,7 +135,6 @@ pub enum PacketS { }, #[serde(skip)] - #[bincode(skip)] /// For internal use only (customers) ReplaceHand { player: PlayerID, @@ -164,11 +142,9 @@ pub enum PacketS { item: Option, }, #[serde(skip)] - #[bincode(skip)] /// For internal use only (customers) ApplyScore(Score), #[serde(skip)] - #[bincode(skip)] /// For internal use only (customers) Effect { player: PlayerID, @@ -176,7 +152,7 @@ pub enum PacketS { }, } -#[derive(Debug, Default, Clone, Copy, Serialize, Deserialize, Encode, Decode)] +#[derive(Debug, Default, Clone, Copy, Serialize, Deserialize)] pub struct Character { #[serde(deserialize_with = "deser_i32", default)] pub color: i32, @@ -190,7 +166,7 @@ fn chef_class() -> PlayerClass { PlayerClass::Chef } -#[derive(Debug, Clone, Copy, Serialize, Deserialize, Encode, Decode, PartialEq, Eq)] +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub enum PlayerClass { Chef, @@ -204,7 +180,7 @@ impl PlayerClass { } } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode, PartialEq, Eq)] +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "snake_case")] pub enum Message { Translation { id: String, params: Vec }, @@ -213,7 +189,7 @@ pub enum Message { Tile(TileIndex), } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] +#[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "snake_case", tag = "type")] pub enum PacketC { Version { @@ -229,7 +205,6 @@ pub enum PacketC { }, AddPlayer { id: PlayerID, - #[bincode(with_serde)] position: Vec2, class: PlayerClass, character: Character, @@ -240,10 +215,8 @@ pub enum PacketC { }, Movement { player: PlayerID, - #[bincode(with_serde)] pos: Vec2, rot: f32, - #[bincode(with_serde)] dir: Vec2, boost: bool, }, @@ -269,7 +242,6 @@ pub enum PacketC { warn: bool, }, UpdateMap { - #[bincode(with_serde)] tile: IVec2, kind: Option, neighbors: [Option; 4], @@ -289,7 +261,6 @@ pub enum PacketC { error: bool, }, ServerHint { - #[bincode(with_serde)] position: Option, message: Option, player: PlayerID, @@ -320,7 +291,7 @@ pub enum PacketC { ReplayStop, } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode)] +#[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "snake_case", tag = "menu", content = "data")] pub enum Menu { Score(Score), @@ -329,14 +300,14 @@ pub enum Menu { AnnounceStart, } -#[derive(Debug, Clone, Copy, Serialize, Deserialize, Encode, Decode, Default)] +#[derive(Debug, Clone, Copy, Serialize, Deserialize, Default)] pub struct MessageTimeout { pub remaining: f32, pub initial: f32, pub pinned: bool, } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode, Default)] +#[derive(Debug, Clone, Serialize, Deserialize, Default)] pub struct Score { pub time_remaining: f64, pub stars: u8, @@ -349,18 +320,18 @@ pub struct Score { pub instant_recipes: usize, } -#[derive(Debug, Serialize, Deserialize, Encode, Decode, Clone, Default)] +#[derive(Debug, Serialize, Deserialize, Clone, Default)] pub struct Scoreboard { pub plays: usize, pub best: Vec, } -#[derive(Debug, Serialize, Deserialize, Encode, Decode, Clone)] +#[derive(Debug, Serialize, Deserialize, Clone)] pub struct ScoreboardEntry { pub players: Vec, pub score: Score, } -#[derive(Debug, Clone, Serialize, Encode, Decode, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] pub enum Recipe { Passive { @@ -385,10 +356,10 @@ pub enum Recipe { }, } -#[derive(Debug, Clone, Serialize, Deserialize, Encode, Decode, Copy, PartialEq, Eq, Hash)] +#[derive(Debug, Clone, Serialize, Deserialize, Copy, PartialEq, Eq, Hash)] #[serde(rename_all = "snake_case")] pub enum ItemLocation { - Tile(#[bincode(with_serde)] IVec2), + Tile(IVec2), Player(PlayerID, Hand), } -- cgit v1.2.3-70-g09d2