summaryrefslogtreecommitdiff
path: root/protocol/src/card.rs
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2022-11-15 19:49:54 -0500
committerKjetil Orbekk <kj@orbekk.com>2022-11-15 19:49:54 -0500
commitb114fe7940e77090861ac9ba60f4d0b8caec8978 (patch)
treed5c7a1f2250a899719225642bf876a29316a30b0 /protocol/src/card.rs
parent87ede1e2b367a997440626ad9f583600d7cc42fc (diff)
Add journaling GameState
Diffstat (limited to 'protocol/src/card.rs')
-rw-r--r--protocol/src/card.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/protocol/src/card.rs b/protocol/src/card.rs
index 621bae1..e27f29a 100644
--- a/protocol/src/card.rs
+++ b/protocol/src/card.rs
@@ -1,3 +1,4 @@
+use serde::{Deserialize, Serialize};
use anyhow::anyhow;
use rand::prelude::SliceRandom;
use rand::Rng;
@@ -7,7 +8,7 @@ use strum::IntoEnumIterator;
use strum_macros::EnumCount;
use strum_macros::EnumIter;
-#[derive(PartialOrd, Ord, PartialEq, Eq, Clone, Copy, EnumIter, EnumCount)]
+#[derive(PartialOrd, Ord, PartialEq, Eq, Clone, Copy, EnumIter, EnumCount, Serialize, Deserialize)]
pub enum Suit {
Club,
Diamond,
@@ -15,7 +16,7 @@ pub enum Suit {
Spade,
}
-#[derive(PartialOrd, Ord, PartialEq, Eq, Clone, Copy, EnumIter)]
+#[derive(PartialOrd, Ord, PartialEq, Eq, Clone, Copy, EnumIter, Serialize, Deserialize)]
pub enum Rank {
Two = 2,
Three,
@@ -119,7 +120,7 @@ impl std::str::FromStr for Rank {
}
}
-#[derive(PartialEq, Eq, Clone, Copy)]
+#[derive(PartialEq, Eq, Clone, Copy, Serialize, Deserialize)]
pub struct Card(pub Suit, pub Rank);
impl fmt::Display for Card {
@@ -240,7 +241,7 @@ mod tests {
}
}
-#[derive(Debug, PartialEq, Eq, Clone)]
+#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)]
pub struct Deal {
pub north: Vec<Card>,
pub west: Vec<Card>,