diff options
author | metamuffin <metamuffin@disroot.org> | 2025-09-27 17:34:55 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-09-27 17:35:01 +0200 |
commit | 7ffc399d47ec9a3c161abeafe9e3591cbf15a227 (patch) | |
tree | c6b16d588e65dd17ff090640f945763a412caa02 /server/protocol/src/lib.rs | |
parent | 001c0c2e00082a87fb15754003f6b01a1b4fb89d (diff) | |
download | hurrycurry-7ffc399d47ec9a3c161abeafe9e3591cbf15a227.tar hurrycurry-7ffc399d47ec9a3c161abeafe9e3591cbf15a227.tar.bz2 hurrycurry-7ffc399d47ec9a3c161abeafe9e3591cbf15a227.tar.zst |
remove bincode support everywhere
Diffstat (limited to 'server/protocol/src/lib.rs')
-rw-r--r-- | server/protocol/src/lib.rs | 77 |
1 files changed, 24 insertions, 53 deletions
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 <https://www.gnu.org/licenses/>. */ -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<LittleEndian, Varint, Limit<4096>> = - 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<ItemIndex>, @@ -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<PlayerID>, // used entity bots that cant receive a response - #[serde(skip)] // TODO fix bincode aswell - #[bincode(with_serde)] + #[serde(skip)] position: Option<Vec2>, // 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<Vec2>, }, Interact { player: PlayerID, hand: Hand, #[serde(deserialize_with = "deser_ivec2_opt", default)] - #[bincode(with_serde)] pos: Option<IVec2>, }, 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<ItemIndex>, }, #[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<Message> }, @@ -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<TileIndex>, neighbors: [Option<TileIndex>; 4], @@ -289,7 +261,6 @@ pub enum PacketC { error: bool, }, ServerHint { - #[bincode(with_serde)] position: Option<IVec2>, message: Option<Message>, 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<ScoreboardEntry>, } -#[derive(Debug, Serialize, Deserialize, Encode, Decode, Clone)] +#[derive(Debug, Serialize, Deserialize, Clone)] pub struct ScoreboardEntry { pub players: Vec<String>, 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), } |