Skip to content

Commit ff7b332

Browse files
committed
provide Board::{is_empty,first,last}
1 parent a5e70fd commit ff7b332

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

src/board.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,23 @@ impl Board {
383383
self
384384
}
385385

386+
#[inline]
387+
pub fn is_empty(&self) -> bool {
388+
self.occupied.is_empty()
389+
}
390+
391+
pub fn first(&self) -> Option<(Square, Piece)> {
392+
self.occupied
393+
.first()
394+
.and_then(|sq| self.piece_at(sq).map(|piece| (sq, piece)))
395+
}
396+
397+
pub fn last(&self) -> Option<(Square, Piece)> {
398+
self.occupied
399+
.last()
400+
.and_then(|sq| self.piece_at(sq).map(|piece| (sq, piece)))
401+
}
402+
386403
pub fn pop_front(&mut self) -> Option<(Square, Piece)> {
387404
self.occupied
388405
.first()
@@ -532,6 +549,10 @@ impl Iterator for IntoIter {
532549
let len = self.len();
533550
(len, Some(len))
534551
}
552+
553+
fn last(self) -> Option<(Square, Piece)> {
554+
self.inner.last()
555+
}
535556
}
536557

537558
impl ExactSizeIterator for IntoIter {

0 commit comments

Comments
 (0)