diff options
author | metamuffin <metamuffin@disroot.org> | 2024-06-20 01:38:00 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-06-23 19:21:49 +0200 |
commit | 720bb2e4f53d4467832ba59f97c9b6b6786181e7 (patch) | |
tree | 10ea600436adf2c101d9a1ccbf64808414bbc354 /server/src/protocol.rs | |
parent | 6f7b995dd9fa3bea95be8c24e2452f015b410839 (diff) | |
download | hurrycurry-720bb2e4f53d4467832ba59f97c9b6b6786181e7.tar hurrycurry-720bb2e4f53d4467832ba59f97c9b6b6786181e7.tar.bz2 hurrycurry-720bb2e4f53d4467832ba59f97c9b6b6786181e7.tar.zst |
type safe indecies
Diffstat (limited to 'server/src/protocol.rs')
-rw-r--r-- | server/src/protocol.rs | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/server/src/protocol.rs b/server/src/protocol.rs index 24fe2468..a629ffbf 100644 --- a/server/src/protocol.rs +++ b/server/src/protocol.rs @@ -2,11 +2,22 @@ use crate::data::Gamedata; use glam::{IVec2, Vec2}; use serde::{Deserialize, Serialize}; -pub type PlayerID = i64; -pub type ItemIndex = usize; -pub type TileIndex = usize; -pub type RecipeIndex = usize; -pub type DemandIndex = usize; +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[serde(transparent)] +pub struct PlayerID(pub i64); + +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[serde(transparent)] +pub struct ItemIndex(pub usize); +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[serde(transparent)] +pub struct TileIndex(pub usize); +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[serde(transparent)] +pub struct RecipeIndex(pub usize); +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[serde(transparent)] +pub struct DemandIndex(pub usize); #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "snake_case", tag = "type")] |