use async_trait::async_trait; use crate::{bridge_engine::{BiddingStatePlayerView, Bid, PlayStatePlayerView}, card::Card}; #[async_trait] pub trait BiddingBot { async fn bid(&self, bidding: &BiddingStatePlayerView) -> Bid; } #[async_trait] pub trait PlayingBot { // TODO: May need a PlayStateBotView here to expose past cards played, // to avoid the need for stateful bots. async fn play(&self, play_state: &PlayStatePlayerView) -> Card; }