summaryrefslogtreecommitdiff
path: root/webapp/src/bridge_engine.rs
diff options
context:
space:
mode:
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);