[board] Implement FromIterator for BitBoard
This commit is contained in:
parent
f337b8053d
commit
e56b3259e2
1 changed files with 13 additions and 1 deletions
|
@ -1,7 +1,7 @@
|
||||||
// Eryn Wells <eryn@erynwells.me>
|
// Eryn Wells <eryn@erynwells.me>
|
||||||
|
|
||||||
use super::library::{library, FILES, RANKS};
|
use super::library::{library, FILES, RANKS};
|
||||||
use super::{LeadingBitScanner, TrailingBitScanner};
|
use super::LeadingBitScanner;
|
||||||
use crate::{square::Direction, Square};
|
use crate::{square::Direction, Square};
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::ops::{BitAnd, BitAndAssign, BitOr, BitOrAssign, Not};
|
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 {
|
impl fmt::Binary for BitBoard {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
// Delegate to u64's implementation of Binary.
|
// Delegate to u64's implementation of Binary.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue