pub mod cards;
pub use cards::{
AddCard, Card, CardCollection, CardFaces, CardHand, Deck, Hand, Pile, Rank, Suit, TakeCard,
};
pub mod dice;
pub use dice::{Die, DieResult, Rolls};
pub mod dominos;
pub use dominos::{BonePile, Domino, DominoHand, MAX_PIPS, Train};
pub mod metered_resource;
pub use metered_resource::MeteredResource;
pub mod refilling_pool;
pub use refilling_pool::RefillingPool;
pub mod spinners;
pub use spinners::{Spinner, Wedge, wedges_from_tuples, wedges_from_values};
pub mod gameerror;
pub use gameerror::{
CardError, DiceError, DominoError, GameError, GridError, RefillingPoolError, SpinnerError,
ValueError,
};
pub mod grid;
pub use grid::{Grid, GridSize, Point, PointDelta};
pub mod ordering;
pub use ordering::{
AscendingOrder, DescendingOrder, Max, MaxPriorityQ, Min, MinPriorityQ, PriorityQueue,
RankedOrder,
};
pub type GameResult<T> = Result<T, GameError>;
#[macro_export]
macro_rules! ensure {
($cond:expr, $err:expr) => {
if !$cond {
return Err($err.into());
}
};
}