From 92c68e821ee381ee2aa52bdfcbaebdccc76f0870 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Tue, 6 Sep 2022 21:19:32 -0400 Subject: Set up initial shared (empty) bidding state --- webapp/src/bridge_engine.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'webapp/src/bridge_engine.rs') diff --git a/webapp/src/bridge_engine.rs b/webapp/src/bridge_engine.rs index 573b2f1..fd52c33 100644 --- a/webapp/src/bridge_engine.rs +++ b/webapp/src/bridge_engine.rs @@ -263,7 +263,7 @@ impl Bidding { } } - fn highest_bid(&self) -> Option { + pub fn highest_bid(&self) -> Option { for bid in self.bids.iter().rev() { if let Some(raise) = bid.as_raise() { return Some(raise); @@ -314,7 +314,11 @@ pub enum BiddingResult { } impl BiddingResult { - pub fn bidding(self) -> Bidding { + pub fn new(dealer: Player) -> Self { + BiddingResult::InProgress(Bidding::new(dealer)) + } + + pub fn bidding(&self) -> &Bidding { match self { BiddingResult::InProgress(bidding) => bidding, BiddingResult::Contract(_, bidding) => bidding, @@ -375,7 +379,10 @@ mod tests { let mut checked_raises = 0; for bid in Raise::all_raises() { assert_eq!(bid, Raise::from_str(format!("{}", bid).as_str()).unwrap()); - assert_eq!(Bid::Raise(bid), Bid::from_str(format!("{}", bid).as_str()).unwrap()); + assert_eq!( + Bid::Raise(bid), + Bid::from_str(format!("{}", bid).as_str()).unwrap() + ); checked_raises += 1; } assert_eq!(checked_raises, 35); -- cgit v1.2.3