[][src]Enum pgn_reader::Square

#[repr(u8)]
pub enum Square {
    A1,
    B1,
    C1,
    D1,
    E1,
    F1,
    G1,
    H1,
    A2,
    B2,
    C2,
    D2,
    E2,
    F2,
    G2,
    H2,
    A3,
    B3,
    C3,
    D3,
    E3,
    F3,
    G3,
    H3,
    A4,
    B4,
    C4,
    D4,
    E4,
    F4,
    G4,
    H4,
    A5,
    B5,
    C5,
    D5,
    E5,
    F5,
    G5,
    H5,
    A6,
    B6,
    C6,
    D6,
    E6,
    F6,
    G6,
    H6,
    A7,
    B7,
    C7,
    D7,
    E7,
    F7,
    G7,
    H7,
    A8,
    B8,
    C8,
    D8,
    E8,
    F8,
    G8,
    H8,
}

A square index.

Variants

A1B1C1D1E1F1G1H1A2B2C2D2E2F2G2H2A3B3C3D3E3F3G3H3A4B4C4D4E4F4G4H4A5B5C5D5E5F5G5H5A6B6C6D6E6F6G6H6A7B7C7D7E7F7G7H7A8B8C8D8E8F8G8H8

Methods

impl Square[src]

pub fn new(index: u32) -> Square[src]

Gets a Square from an integer index.

Panics

Panics if the index is not in the range 0..=63.

Examples

use shakmaty::Square;

assert_eq!(Square::new(0), Square::A1);
assert_eq!(Square::new(63), Square::H8);

pub unsafe fn new_unchecked(index: u32) -> Square[src]

Gets a Square from an integer index.

Unsafety

It is the callers responsibility to ensure it is in the range 0..=63.

pub fn from_coords(file: File, rank: Rank) -> Square[src]

Tries to get a square from file and rank.

Examples

use shakmaty::{Square, File, Rank};

assert_eq!(Square::from_coords(File::A, Rank::First), Square::A1);

pub fn from_ascii(s: &[u8]) -> Result<Square, ParseSquareError>[src]

Parses a square name.

Errors

Returns ParseSquareError if the input is not a valid square name in lowercase ASCII characters.

Example

use shakmaty::Square;

let sq = Square::from_ascii(b"a5")?;
assert_eq!(sq, Square::A5);

pub fn file(self) -> File[src]

Gets the file.

Examples

use shakmaty::{Square, File};

assert_eq!(Square::A1.file(), File::A);
assert_eq!(Square::B2.file(), File::B);

pub fn rank(self) -> Rank[src]

Gets the rank.

Examples

use shakmaty::{Square, Rank};

assert_eq!(Square::A1.rank(), Rank::First);
assert_eq!(Square::B2.rank(), Rank::Second);

pub fn coords(self) -> (File, Rank)[src]

Gets file and rank.

Examples

use shakmaty::{Square, File, Rank};

assert_eq!(Square::A1.coords(), (File::A, Rank::First));
assert_eq!(Square::H8.coords(), (File::H, Rank::Eighth));

pub fn offset(self, delta: i32) -> Option<Square>[src]

Calculates the offset from a square index.

Examples

use shakmaty::Square;

assert_eq!(Square::F3.offset(8), Some(Square::F4));
assert_eq!(Square::F3.offset(-1), Some(Square::E3));

assert_eq!(Square::F3.offset(48), None);

pub fn flip_horizontal(self) -> Square[src]

Flip the square horizontally.

use shakmaty::Square;

assert_eq!(Square::H1.flip_horizontal(), Square::A1);
assert_eq!(Square::D3.flip_horizontal(), Square::E3);

pub fn flip_vertical(self) -> Square[src]

Flip the square vertically.

use shakmaty::Square;

assert_eq!(Square::A8.flip_vertical(), Square::A1);
assert_eq!(Square::D3.flip_vertical(), Square::D6);

pub fn flip_diagonal(self) -> Square[src]

Flip at the a1-h8 diagonal by swapping file and rank.

use shakmaty::Square;

assert_eq!(Square::A1.flip_diagonal(), Square::A1);
assert_eq!(Square::A3.flip_diagonal(), Square::C1);

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

Tests is the square is a light square.

use shakmaty::Square;

assert!(Square::D1.is_light());
assert!(!Square::D8.is_light());

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

Tests is the square is a dark square.

use shakmaty::Square;

assert!(Square::E1.is_dark());
assert!(!Square::E8.is_dark());

pub fn distance(self, other: Square) -> u32[src]

The distance between the two squares, i.e. the number of king steps to get from one square to the other.

use shakmaty::Square;

assert_eq!(Square::A2.distance(Square::B5), 3);

pub fn with_rank_of(self, other: Square) -> Square[src]

Combines two squares, taking the file from the first and the rank from the second.

use shakmaty::Square;

assert_eq!(Square::D3.with_rank_of(Square::F5), Square::D5);

Trait Implementations

impl From<(File, Rank)> for Square[src]

impl Copy for Square[src]

impl Clone for Square[src]

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

Performs copy-assignment from source. Read more

impl Sub<Square> for Square[src]

type Output = i32

The resulting type after applying the - operator.

impl FromStr for Square[src]

type Err = ParseSquareError

The associated error which can be returned from parsing.

impl Eq for Square[src]

impl PartialEq<Square> for Square[src]

#[must_use] fn ne(&self, other: &Rhs) -> bool1.0.0[src]

This method tests for !=.

impl Display for Square[src]

impl Hash for Square[src]

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 PartialOrd<Square> for Square[src]

#[must_use] fn lt(&self, other: &Rhs) -> bool1.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) -> bool1.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) -> bool1.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) -> bool1.0.0[src]

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

impl Debug for Square[src]

impl Ord for Square[src]

fn max(self, other: Self) -> Self1.21.0[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self1.21.0[src]

Compares and returns the minimum of two values. Read more

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

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

Restrict a value to a certain interval. Read more

impl TryFrom<u16> for Square[src]

type Error = TryFromIntError

The type returned in the event of a conversion error.

impl TryFrom<i16> for Square[src]

type Error = TryFromIntError

The type returned in the event of a conversion error.

impl TryFrom<i8> for Square[src]

type Error = TryFromIntError

The type returned in the event of a conversion error.

impl TryFrom<u64> for Square[src]

type Error = TryFromIntError

The type returned in the event of a conversion error.

impl TryFrom<i32> for Square[src]

type Error = TryFromIntError

The type returned in the event of a conversion error.

impl TryFrom<usize> for Square[src]

type Error = TryFromIntError

The type returned in the event of a conversion error.

impl TryFrom<i64> for Square[src]

type Error = TryFromIntError

The type returned in the event of a conversion error.

impl TryFrom<u128> for Square[src]

type Error = TryFromIntError

The type returned in the event of a conversion error.

impl TryFrom<u32> for Square[src]

type Error = TryFromIntError

The type returned in the event of a conversion error.

impl TryFrom<i128> for Square[src]

type Error = TryFromIntError

The type returned in the event of a conversion error.

impl TryFrom<isize> for Square[src]

type Error = TryFromIntError

The type returned in the event of a conversion error.

impl TryFrom<u8> for Square[src]

type Error = TryFromIntError

The type returned in the event of a conversion error.

Auto Trait Implementations

impl Sync for Square

impl Send for Square

impl Unpin for Square

impl RefUnwindSafe for Square

impl UnwindSafe for Square

Blanket Implementations

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

type Owned = T

The resulting type after obtaining ownership.

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

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

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

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.

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.

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

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

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