Position

Struct Position 

Source
pub struct Position { /* private fields */ }

Implementations§

Source§

impl Position

Source

pub fn new() -> Self

Source

pub fn empty() -> Self

Source

pub fn side_to_move(&self) -> Color

Returns the current side to move’s color

Source

pub fn occupied(&self) -> Bitboard

Returns a bitboard with all occupied squares

Source

pub fn pieces_bb(&self, color: Color) -> Bitboard

Returns the bitboard of all pieces of a given color

Source

pub fn pieces_bb_type(&self, pt: PieceType) -> Bitboard

Returns the bitboard of all pieces of a given piece type

Source

pub fn pieces_bb_color(&self, color: Color, pt: PieceType) -> Bitboard

Returns the bitboard of all pieces of a given color and piece type

Source

pub fn piece_at(&self, square: Square) -> Piece

Returns the piece at a given square, Piece::NONE if the square is empty

Source

pub fn castling_rights(&self) -> CastlingRights

Returns the castling rights

Source

pub fn ep_square(&self) -> Square

Returns the en passant square, or Square::NONE if there is none

Source

pub fn do_move(&mut self, mv: Move)

Make a legal move on the board

Source

pub fn set_castling_rights(&mut self, rights: CastlingRights)

Source

pub fn set_ep_square_unchecked(&mut self, sq: Square)

No validation is done, use with caution

Source

pub fn add_castling_rights(&mut self, rights: CastlingRights)

Source

pub fn set_side_to_move(&mut self, side: Color)

Source

pub fn set_ply(&mut self, ply: u16)

Source

pub fn ply(&self) -> u16

Source

pub fn set_rule50_counter(&mut self, counter: u16)

Source

pub fn rule50_counter(&self) -> u16

Source

pub fn place(&mut self, pc: Piece, sq: Square)

Places a piece on the board

Source

pub fn fen(&self) -> Result<String, PositionError>

Returns the FEN representation of the position

Source

pub fn from_fen(fen: &str) -> Result<Self, PositionError>

Create a position from a FEN string

Source

pub fn is_attacked(&self, sq: Square, c: Color) -> bool

Check if a square is attacked by the given color

Source

pub fn king_sq(&self, c: Color) -> Square

Returns the square of the king of the given color

Source

pub fn is_checked(&self, c: Color) -> bool

Returns true if the given color is in check

Source

pub fn after_move(&self, mv: Move) -> Self

Trait Implementations§

Source§

impl Clone for Position

Source§

fn clone(&self) -> Position

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Position

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Position

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Position

Source§

fn eq(&self, other: &Position) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Position

Source§

impl Eq for Position

Source§

impl StructuralPartialEq for Position

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.