Enum myopic_core::Piece[][src]

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

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

impl Piece[src]

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

Create an iterator traversing over all pieces in order.

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

Create an iterator traversing over all white pieces in order.

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

Create an iterator traversing over all black pieces in order.

pub fn king(side: Side) -> Piece[src]

Returns the king which belongs to the given side.

pub fn queen(side: Side) -> Piece[src]

Returns the queen which belongs to the given side.

pub fn rook(side: Side) -> Piece[src]

Returns the rook belonging to the given side.

pub fn pawn(side: Side) -> Piece[src]

Returns the pawn which belongs to the given side.

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

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

pub fn side(self) -> Side[src]

Returns the side that this piece belongs to.

pub fn is_pawn(self) -> bool[src]

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

pub fn is_knight(self) -> bool[src]

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

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

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

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

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

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

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

impl<O: Into<EnumSet<Piece>>> BitAnd<O> for Piece[src]

type Output = EnumSet<Piece>

The resulting type after applying the & operator.

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

Performs the & operation. Read more

impl<O: Into<EnumSet<Piece>>> BitOr<O> for Piece[src]

type Output = EnumSet<Piece>

The resulting type after applying the | operator.

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

Performs the | operation. Read more

impl<O: Into<EnumSet<Piece>>> BitXor<O> for Piece[src]

type Output = EnumSet<Piece>

The resulting type after applying the ^ operator.

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

Performs the ^ operation. Read more

impl Clone for Piece[src]

fn clone(&self) -> Self[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Piece[src]

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

Formats the value using the given formatter. Read more

impl Display for Piece[src]

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

Formats the value using the given formatter. Read more

impl EnumSetTypePrivate for Piece[src]

type Repr = u16

The underlying type used to store the bitset.

const ALL_BITS: Self::Repr[src]

A mask of bits that are valid in the bitset.

fn enum_into_u32(self) -> u32[src]

Converts an enum of this type into its bit position.

unsafe fn enum_from_u32(val: u32) -> Self[src]

Converts a bit position into an enum value.

impl FromStr for Piece[src]

type Err = Error

The associated error which can be returned from parsing.

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

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

impl Hash for Piece[src]

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

Feeds this value into the given Hasher. Read more

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

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

impl Not for Piece[src]

type Output = EnumSet<Piece>

The resulting type after applying the ! operator.

fn not(self) -> Self::Output[src]

Performs the unary ! operation. Read more

impl Ord for Piece[src]

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

This method returns an Ordering between self and other. Read more

#[must_use]
fn max(self, other: Self) -> Self
1.21.0[src]

Compares and returns the maximum of two values. Read more

#[must_use]
fn min(self, other: Self) -> Self
1.21.0[src]

Compares and returns the minimum of two values. Read more

#[must_use]
fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]

Restrict a value to a certain interval. Read more

impl PartialEq<EnumSet<Piece>> for Piece[src]

fn eq(&self, other: &EnumSet<Piece>) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialEq<Piece> for Piece[src]

fn eq(&self, other: &Self) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialOrd<Piece> for Piece[src]

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

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

#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than (for self and other) and is used by the < operator. Read more

#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl Reflectable for Piece[src]

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

fn reflect(&self) -> Self[src]

impl<O: Into<EnumSet<Piece>>> Sub<O> for Piece[src]

type Output = EnumSet<Piece>

The resulting type after applying the - operator.

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

Performs the - operation. Read more

impl Copy for Piece[src]

impl EnumSetType for Piece[src]

impl Eq for Piece[src]

Auto Trait Implementations

impl RefUnwindSafe for Piece

impl Send for Piece

impl Sync for Piece

impl Unpin for Piece

impl UnwindSafe for Piece

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

impl<T> ToString for T where
    T: Display + ?Sized
[src]

pub default fn to_string(&self) -> String[src]

Converts the given value to a String. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.