diff --git a/board/src/bitboard/bitboard.rs b/board/src/bitboard/bitboard.rs index 43f4103..9c2ccdb 100644 --- a/board/src/bitboard/bitboard.rs +++ b/board/src/bitboard/bitboard.rs @@ -145,9 +145,7 @@ impl fmt::Display for BitBoard { impl fmt::Debug for BitBoard { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - f.debug_tuple("BitBoard") - .field(&format_args!("{:064b}", self.0)) - .finish() + write!(f, "BitBoard({:064b})", self.0) } } diff --git a/board/src/piece.rs b/board/src/piece.rs index 0b72234..de0d064 100644 --- a/board/src/piece.rs +++ b/board/src/piece.rs @@ -240,6 +240,12 @@ impl PlacedPiece { } } +impl fmt::Display for PlacedPiece { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{}{}", self.piece, self.square) + } +} + #[cfg(test)] mod tests { use super::*; diff --git a/board/src/position/flags.rs b/board/src/position/flags.rs index 43680cf..f434f21 100644 --- a/board/src/position/flags.rs +++ b/board/src/position/flags.rs @@ -2,8 +2,9 @@ use super::position::BoardSide; use crate::piece::Color; +use std::fmt; -#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] +#[derive(Clone, Copy, Eq, Hash, PartialEq)] pub(super) struct Flags(u8); impl Flags { @@ -25,6 +26,12 @@ impl Flags { } } +impl fmt::Debug for Flags { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "Flags({:08b})", self.0) + } +} + impl Default for Flags { fn default() -> Self { Flags(0b00001111) diff --git a/board/src/position/position.rs b/board/src/position/position.rs index 13e9ffa..1be30e0 100644 --- a/board/src/position/position.rs +++ b/board/src/position/position.rs @@ -8,7 +8,6 @@ use crate::{ BitBoard, Square, }; use std::cell::OnceCell; -use std::fmt; /// A lateral side of the board relative to the player. Kingside is the side the /// player's king starts on. Queenside is the side of the board the player's @@ -18,7 +17,7 @@ pub(crate) enum BoardSide { Queen, } -#[derive(Clone, Eq, PartialEq)] +#[derive(Clone, Debug, Eq, PartialEq)] pub struct Position { color_to_move: Color, flags: Flags, @@ -238,29 +237,6 @@ impl FromIterator for Position { } } -impl fmt::Debug for Position { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "Position {{\n")?; - write!(f, " color_to_move: {:?},\n", self.color_to_move)?; - - write!(f, " pieces_per_color: [\n")?; - for bb in self.pieces_per_color { - write!(f, " {bb:?},\n")?; - } - write!(f, " ],\n")?; - - write!(f, " pieces_per_type: [\n")?; - for color_bbs in self.pieces_per_type { - write!(f, " [\n")?; - for bb in color_bbs { - write!(f, " {bb:?},\n")?; - } - write!(f, " ],\n")?; - } - write!(f, " ],\n}}") - } -} - #[cfg(test)] mod tests { use super::*;