From f7c47c4d85847684d726d521673c0c571fcbc35b Mon Sep 17 00:00:00 2001 From: Paul-Nicolas Madelaine Date: Sat, 29 Nov 2025 14:12:20 +0100 Subject: [PATCH] impl Default for Bitboard, Setup & Position --- src/bitboard.rs | 2 +- src/position.rs | 9 ++++++++- src/setup.rs | 7 +++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/bitboard.rs b/src/bitboard.rs index 7639929..dd225fa 100644 --- a/src/bitboard.rs +++ b/src/bitboard.rs @@ -3,7 +3,7 @@ use crate::board::*; /// A set of squares. -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] pub struct Bitboard(pub u64); impl Bitboard { diff --git a/src/position.rs b/src/position.rs index 371b69a..11eaba0 100644 --- a/src/position.rs +++ b/src/position.rs @@ -196,7 +196,7 @@ impl Position { .as_setup() .en_passant .map(|square| square.bitboard()) - .unwrap_or(Bitboard::new()), + .unwrap_or_default(), }; self.generate_moves(&mut moves).is_break() } @@ -478,6 +478,13 @@ impl core::fmt::Debug for Position { } } +impl Default for Position { + #[inline] + fn default() -> Self { + Self::new() + } +} + #[derive(Clone, Copy)] pub(crate) struct RawMove { pub kind: MoveType, diff --git a/src/setup.rs b/src/setup.rs index 3961f27..f8584b1 100644 --- a/src/setup.rs +++ b/src/setup.rs @@ -541,6 +541,13 @@ impl core::fmt::Debug for Setup { } } +impl Default for Setup { + #[inline] + fn default() -> Self { + Self::new() + } +} + /// An invalid position. /// /// This is an illegal position that can't be represented with the [`Position`] type.