From a77b7b64bbd16649318cfaa0716335fb588eca71 Mon Sep 17 00:00:00 2001 From: Jonni Liljamo Date: Tue, 14 Feb 2023 14:21:49 +0200 Subject: [PATCH] feat(sdbclient): GameState enum --- Cargo.lock | 12 ++++++++++++ sdbclient/Cargo.toml | 1 + sdbclient/src/api/game/types.rs | 12 +++++++++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index fe0b1a4..4cc2cf0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3662,6 +3662,7 @@ dependencies = [ "reqwest", "serde", "serde_json", + "serde_repr", "toml 0.7.1", ] @@ -3734,6 +3735,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_repr" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a5ec9fa74a20ebbe5d9ac23dac1fc96ba0ecfe9f50f2843b52e537b10fbcb4e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "serde_spanned" version = "0.6.1" diff --git a/sdbclient/Cargo.toml b/sdbclient/Cargo.toml index 8b8e720..9bd7e4a 100644 --- a/sdbclient/Cargo.toml +++ b/sdbclient/Cargo.toml @@ -42,6 +42,7 @@ reqwest = { version = "0.11.14", features = ["blocking", "json"] } # (de)serialization serde = { version = "1.0.152", features = ["derive"] } serde_json = "1.0.91" +serde_repr = "0.1.10" # futures for async futures-lite = "1.12.0" diff --git a/sdbclient/src/api/game/types.rs b/sdbclient/src/api/game/types.rs index 0e2d1b8..6cbc9af 100644 --- a/sdbclient/src/api/game/types.rs +++ b/sdbclient/src/api/game/types.rs @@ -7,9 +7,19 @@ */ use serde::{Deserialize, Serialize}; +use serde_repr::{Deserialize_repr, Serialize_repr}; use crate::api::user::types::UserPub; +#[derive(Debug, Serialize_repr, Deserialize_repr, Clone, PartialEq)] +#[repr(u8)] +pub enum GameState { + Forming = 0, + InProgress = 1, + Finished = 2, + Cancelled = 3, +} + #[derive(Debug, Serialize, Deserialize, Clone)] pub struct Game { pub id: String, @@ -19,6 +29,6 @@ pub struct Game { pub host: UserPub, pub guest_id: String, pub guest: UserPub, - pub state: u8, + pub state: GameState, pub ended_at: String, } -- 2.44.1