summaryrefslogtreecommitdiff
path: root/server/src/play.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/play.rs')
-rw-r--r--server/src/play.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/server/src/play.rs b/server/src/play.rs
index e0d4733..68ea94b 100644
--- a/server/src/play.rs
+++ b/server/src/play.rs
@@ -179,6 +179,15 @@ impl<J: Journal<TableUpdate>> Table<J> {
self.insert_and_apply(TableUpdate::Play(card)).await
}
+ pub async fn new_deal(&mut self) -> Result<(), BridgeError> {
+ let dealer = match &self.state {
+ TableState::Unknown => random(),
+ TableState::Game(g) => g.dealer(),
+ TableState::Result(_) => random(), // TODO: We should know the dealer here.
+ };
+ self.insert_and_apply(TableUpdate::NewDeal { deal: random(), dealer: dealer.next() }).await
+ }
+
async fn insert_and_apply(
&mut self,
update: TableUpdate,