Macro cozy_chess::bitboard

source ·
macro_rules! bitboard {
    (
        $a8:tt $b8:tt $c8:tt $d8:tt $e8:tt $f8:tt $g8:tt $h8:tt
        $a7:tt $b7:tt $c7:tt $d7:tt $e7:tt $f7:tt $g7:tt $h7:tt
        $a6:tt $b6:tt $c6:tt $d6:tt $e6:tt $f6:tt $g6:tt $h6:tt
        $a5:tt $b5:tt $c5:tt $d5:tt $e5:tt $f5:tt $g5:tt $h5:tt
        $a4:tt $b4:tt $c4:tt $d4:tt $e4:tt $f4:tt $g4:tt $h4:tt
        $a3:tt $b3:tt $c3:tt $d3:tt $e3:tt $f3:tt $g3:tt $h3:tt
        $a2:tt $b2:tt $c2:tt $d2:tt $e2:tt $f2:tt $g2:tt $h2:tt
        $a1:tt $b1:tt $c1:tt $d1:tt $e1:tt $f1:tt $g1:tt $h1:tt
    ) => { ... };
    (@__inner $($occupied:tt)*) => { ... };
    (@__square X) => { ... };
    (@__square .) => { ... };
    (@__square $token:tt) => { ... };
    ($($token:tt)*) => { ... };
}
Expand description

BitBoard literal macro.

let bb = bitboard! {
    . . . X . . . .
    . . . X . . . .
    . . . X . . . .
    . . . X . . . .
    . . . X . . . .
    X X X . X X X X
    . . . X . . . .
    . . . X . . . .
};
assert_eq!(bb, File::D.bitboard() ^ Rank::Third.bitboard());