[board] Implement FromIterator for BitBoard

This commit is contained in:
Eryn Wells 2024-01-17 08:48:46 -08:00
parent f337b8053d
commit e56b3259e2

View file

@ -1,7 +1,7 @@
// Eryn Wells <eryn@erynwells.me>
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<Square> for BitBoard {
}
}
impl FromIterator<Square> for BitBoard {
fn from_iter<T: IntoIterator<Item = Square>>(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.