summaryrefslogtreecommitdiff
path: root/webapp/src/card.rs
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/src/card.rs')
-rw-r--r--webapp/src/card.rs20
1 files changed, 14 insertions, 6 deletions
diff --git a/webapp/src/card.rs b/webapp/src/card.rs
index 174676f..3b2fc24 100644
--- a/webapp/src/card.rs
+++ b/webapp/src/card.rs
@@ -184,16 +184,24 @@ mod tests {
}
}
-pub fn shuffle_deck<R>(rng: &mut R) -> (Vec<Card>, Vec<Card>, Vec<Card>, Vec<Card>)
+#[derive(Debug, PartialEq, Eq)]
+pub struct Deal {
+ pub north: Vec<Card>,
+ pub west: Vec<Card>,
+ pub south: Vec<Card>,
+ pub east: Vec<Card>,
+}
+
+pub fn deal<R>(rng: &mut R) -> Deal
where
R: Rng,
{
let mut deck = make_deck();
deck.shuffle(rng);
let mut deck = deck.iter();
- let n = deck.by_ref().take(13).cloned().collect();
- let w = deck.by_ref().take(13).cloned().collect();
- let s = deck.by_ref().take(13).cloned().collect();
- let e = deck.by_ref().take(13).cloned().collect();
- (n, w, s, e)
+ let north = deck.by_ref().take(13).cloned().collect();
+ let west = deck.by_ref().take(13).cloned().collect();
+ let south = deck.by_ref().take(13).cloned().collect();
+ let east = deck.by_ref().take(13).cloned().collect();
+ Deal { north, west, south, east }
}