summaryrefslogtreecommitdiff
path: root/webapp/src/bridge_engine.rs
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2022-09-06 21:19:32 -0400
committerKjetil Orbekk <kj@orbekk.com>2022-09-06 21:19:32 -0400
commit92c68e821ee381ee2aa52bdfcbaebdccc76f0870 (patch)
tree80815947cc557cef07edf695b54370391ec51368 /webapp/src/bridge_engine.rs
parentc19d8d2d475d12b45b85e44682f39aaa70923d74 (diff)
Set up initial shared (empty) bidding state
Diffstat (limited to 'webapp/src/bridge_engine.rs')
-rw-r--r--webapp/src/bridge_engine.rs13
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);