diff options
author | Kjetil Orbekk <kj@orbekk.com> | 2022-09-06 21:19:32 -0400 |
---|---|---|
committer | Kjetil Orbekk <kj@orbekk.com> | 2022-09-06 21:19:32 -0400 |
commit | 92c68e821ee381ee2aa52bdfcbaebdccc76f0870 (patch) | |
tree | 80815947cc557cef07edf695b54370391ec51368 /webapp/src/bridge_engine.rs | |
parent | c19d8d2d475d12b45b85e44682f39aaa70923d74 (diff) |
Set up initial shared (empty) bidding state
Diffstat (limited to 'webapp/src/bridge_engine.rs')
-rw-r--r-- | webapp/src/bridge_engine.rs | 13 |
1 files changed, 10 insertions, 3 deletions
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<Raise> { + pub fn highest_bid(&self) -> Option<Raise> { 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); |