open_pql/functions/
hi_rating.rs

1use super::*;
2
3#[pqlfn(arg, rtn, eval)]
4pub fn hi_rating(
5    hand: &Hand,
6    street: PQLStreet,
7    (game, board): (PQLGame, Board),
8) -> PQLHiRating {
9    let c64_board = (board, street).into();
10
11    match game {
12        PQLGame::Holdem => eval_holdem(hand, c64_board),
13        PQLGame::ShortDeck => eval_shortdeck(hand, c64_board),
14        PQLGame::Omaha => eval_omaha(hand, c64_board),
15    }
16}
17
18#[inline]
19fn eval_holdem(hand: &Hand, mut c64: Card64) -> PQLHiRating {
20    c64.set(hand[0]);
21    c64.set(hand[1]);
22
23    eval_holdem7(c64)
24}
25
26#[inline]
27fn eval_shortdeck(hand: &Hand, mut c64: Card64) -> PQLHiRating {
28    c64.set(hand[0]);
29    c64.set(hand[1]);
30
31    eval_shortdeck7(c64)
32}
33
34#[inline]
35fn eval_omaha(hand: &Hand, board: Card64) -> PQLHiRating {
36    let h = hand.into();
37
38    eval_omaha9(h, board)
39}