Enum Piece

Source
pub enum Piece {
    WP,
    WN,
    WB,
    WR,
    WQ,
    WK,
    BP,
    BN,
    BB,
    BR,
    BQ,
    BK,
}
Expand description

Value type wrapping a single integer representing one of the 12 different pieces in a game of chess.

Variants§

§

WP

§

WN

§

WB

§

WR

§

WQ

§

WK

§

BP

§

BN

§

BB

§

BR

§

BQ

§

BK

Implementations§

Source§

impl Piece

Source

pub fn all() -> impl Iterator<Item = Piece>

Create an iterator traversing over all pieces in order.

Source

pub fn whites() -> impl Iterator<Item = Piece>

Create an iterator traversing over all white pieces in order.

Source

pub fn blacks() -> impl Iterator<Item = Piece>

Create an iterator traversing over all black pieces in order.

Source

pub fn king(side: Side) -> Piece

Returns the king which belongs to the given side.

Source

pub fn queen(side: Side) -> Piece

Returns the queen which belongs to the given side.

Source

pub fn rook(side: Side) -> Piece

Returns the rook belonging to the given side.

Source

pub fn pawn(side: Side) -> Piece

Returns the pawn which belongs to the given side.

Source

pub fn of(side: Side) -> impl Iterator<Item = Piece>

Returns a slice containing all pieces belonging to the given side.

Source

pub fn side(self) -> Side

Returns the side that this piece belongs to.

Source

pub fn is_pawn(self) -> bool

Checks whether this piece is either a white or black pawn.

Source

pub fn is_knight(self) -> bool

Checks whether this piece is either a white or black knight.

Source

pub fn control( self, loc: Square, whites: BitBoard, blacks: BitBoard, ) -> BitBoard

Computes the control set for this piece given it’s location and the locations of all the white and black pieces on the board.

Source

pub fn empty_control(self, loc: Square) -> BitBoard

Computes the control set for this piece given it’s location on an empty board.

Source

pub fn moves(self, loc: Square, whites: BitBoard, blacks: BitBoard) -> BitBoard

Computes the set of legal moves for this piece given it’s location and the locations of all the white and black pieces on the board. Note that this method does not take into account special restrictions for or due to the king, e.g. can’t move in such a way to put the king into check.

Trait Implementations§

Source§

impl<O: Into<EnumSet<Piece>>> BitAnd<O> for Piece

Source§

type Output = EnumSet<Piece>

The resulting type after applying the & operator.
Source§

fn bitand(self, other: O) -> Self::Output

Performs the & operation. Read more
Source§

impl<O: Into<EnumSet<Piece>>> BitOr<O> for Piece

Source§

type Output = EnumSet<Piece>

The resulting type after applying the | operator.
Source§

fn bitor(self, other: O) -> Self::Output

Performs the | operation. Read more
Source§

impl<O: Into<EnumSet<Piece>>> BitXor<O> for Piece

Source§

type Output = EnumSet<Piece>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, other: O) -> Self::Output

Performs the ^ operation. Read more
Source§

impl Clone for Piece

Source§

fn clone(&self) -> Self

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 Piece

Source§

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

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

impl Display for Piece

Source§

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

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

impl EnumSetTypePrivate for Piece

Source§

const CONST_HELPER_INSTANCE: __EnumSetConstHelper = __EnumSetConstHelper

The instance of the ConstHelper.
Source§

const ALL_BITS: Self::Repr = {transmute(0x0fff): <pieces::Piece as enumset::__internal::EnumSetTypePrivate>::Repr}

A mask of bits that are valid in the bitset.
Source§

const BIT_WIDTH: u32 = 12u32

The largest bit used in the bitset.
Source§

const VARIANT_COUNT: u32 = 12u32

The number of variants in the bitset.
Source§

type ConstHelper = __EnumSetConstHelper

A helper type used to implement the enum_set! macro among other things.
Source§

type Repr = u16

The underlying type used to store the bitset.
Source§

fn enum_into_u32(self) -> u32

Converts an enum of this type into its bit position.
Source§

unsafe fn enum_from_u32(val: u32) -> Self

Converts a bit position into an enum value.
Source§

impl FromStr for Piece

Source§

type Err = Error

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for Piece

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Not for Piece

Source§

type Output = EnumSet<Piece>

The resulting type after applying the ! operator.
Source§

fn not(self) -> Self::Output

Performs the unary ! operation. Read more
Source§

impl Ord for Piece

Source§

fn cmp(&self, other: &Piece) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq<EnumSet<Piece>> for Piece

Source§

fn eq(&self, other: &EnumSet<Piece>) -> 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 PartialEq for Piece

Source§

fn eq(&self, other: &Self) -> 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 PartialOrd for Piece

Source§

fn partial_cmp(&self, other: &Piece) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Reflectable for Piece

We reflect a piece to it’s correspondent on the opposite side.

Source§

fn reflect(&self) -> Self

Source§

impl<O: Into<EnumSet<Piece>>> Sub<O> for Piece

Source§

type Output = EnumSet<Piece>

The resulting type after applying the - operator.
Source§

fn sub(self, other: O) -> Self::Output

Performs the - operation. Read more
Source§

impl Copy for Piece

Source§

impl EnumSetType for Piece

Source§

impl Eq for Piece

Auto Trait Implementations§

§

impl Freeze for Piece

§

impl RefUnwindSafe for Piece

§

impl Send for Piece

§

impl Sync for Piece

§

impl Unpin for Piece

§

impl UnwindSafe for Piece

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.