extern crate dealrs;
use dealrs::{deck::CardMask, hand::{lutrank::LutRank, refhand5::RefHand5, Hand5, Rank5}};
use clap::Parser;
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
struct Args {
#[arg(short, long)]
cards: CardMask,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let args = Args::parse();
let cards = args.cards;
println!("cards[{:?}]: {:}", cards.count(), cards);
let engine_ref= RefHand5::new();
let hand = engine_ref.hand5(cards);
println!("hand_ref: {:}", hand);
let engine_lut= LutRank::new();
let rank = engine_lut.rank5(cards);
println!("rank_lut: {:}", rank);
let hand = engine_lut.hand5(cards);
println!("hand_lut: {:}", hand);
Ok(())
}