diff options
Diffstat (limited to 'server/src/play.rs')
-rw-r--r-- | server/src/play.rs | 9 |
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, |