diff --git a/board/src/bitboard/bitboard.rs b/board/src/bitboard/bitboard.rs index 6fee968..43f4103 100644 --- a/board/src/bitboard/bitboard.rs +++ b/board/src/bitboard/bitboard.rs @@ -1,7 +1,7 @@ // Eryn Wells use super::library::{library, FILES, RANKS}; -use super::{LeadingBitScanner, TrailingBitScanner}; +use super::LeadingBitScanner; use crate::{square::Direction, Square}; use std::fmt; use std::ops::{BitAnd, BitAndAssign, BitOr, BitOrAssign, Not}; @@ -87,6 +87,18 @@ impl From for BitBoard { } } +impl FromIterator for BitBoard { + fn from_iter>(iter: T) -> Self { + let mut builder = BitBoardBuilder::empty(); + + for sq in iter { + builder = builder.square(sq) + } + + builder.build() + } +} + impl fmt::Binary for BitBoard { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { // Delegate to u64's implementation of Binary.