Enum shakmaty::Square
[−]
[src]
#[repr(i8)]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
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
Methods
impl Square
[src]
pub fn new(index: i8) -> Square
[src]
pub fn from_index(index: i8) -> Option<Square>
[src]
Tries to create a Square
from an integer index in the range 0..=63
.
pub unsafe fn from_index_unchecked(index: i8) -> Square
[src]
Creates 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: i8, rank: i8) -> Option<Square>
[src]
Tries to create a square from zero-based file and rank indexes.
pub unsafe fn from_coords_unchecked(file: i8, rank: i8) -> Square
[src]
Creates a Square
from zero-based file and rank indexes.
Unsafety
It is the callers responsibility to ensure that file and rank are in
the range 0..=7
.
pub fn from_bytes(s: &[u8]) -> Result<Square, InvalidSquareName>
[src]
Parses a square name.
Errors
Returns InvalidSquareName
if the input is not a valid square name
in lowercase ASCII characters.
Example
use shakmaty::Square; let sq = Square::from_bytes(b"a5")?; assert_eq!(sq, Square::A5);
pub fn file(self) -> i8
[src]
pub fn file_char(self) -> char
[src]
pub fn rank(self) -> i8
[src]
pub fn rank_char(self) -> char
[src]
pub fn offset(self, delta: i8) -> Option<Square>
[src]
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) -> i8
[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 combine(self, rank: 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.combine(Square::F5), Square::D5);
Trait Implementations
impl Copy for Square
[src]
impl Clone for Square
[src]
fn clone(&self) -> Square
[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 Eq for Square
[src]
impl PartialEq for Square
[src]
fn eq(&self, __arg_0: &Square) -> bool
[src]
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]
This method tests for !=
.
impl Ord for Square
[src]
fn cmp(&self, __arg_0: &Square) -> Ordering
[src]
This method returns an Ordering
between self
and other
. Read more
fn max(self, other: Self) -> Self
1.21.0[src]
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.21.0[src]
Compares and returns the minimum of two values. Read more
impl PartialOrd for Square
[src]
fn partial_cmp(&self, __arg_0: &Square) -> Option<Ordering>
[src]
This method returns an ordering between self
and other
values if one exists. Read more
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
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
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
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 Hash for Square
[src]
fn hash<__H: Hasher>(&self, __arg_0: &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]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl From<Square> for u8
[src]
impl From<Square> for i8
[src]
impl From<Square> for u16
[src]
impl From<Square> for i16
[src]
impl From<Square> for u32
[src]
impl From<Square> for i32
[src]
impl From<Square> for u64
[src]
impl From<Square> for i64
[src]
impl From<Square> for usize
[src]
impl From<Square> for isize
[src]
impl Sub for Square
[src]
type Output = i8
The resulting type after applying the -
operator.
fn sub(self, other: Square) -> i8
[src]
Performs the -
operation.
impl FromStr for Square
[src]
type Err = InvalidSquareName
The associated error which can be returned from parsing.
fn from_str(s: &str) -> Result<Square, InvalidSquareName>
[src]
Parses a string s
to return a value of this type. Read more
impl Display for Square
[src]
fn fmt(&self, f: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more
impl Debug for Square
[src]
fn fmt(&self, f: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more
impl From<Square> for Bitboard
[src]
impl FromIterator<Square> for Bitboard
[src]
fn from_iter<T>(iter: T) -> Self where
T: IntoIterator<Item = Square>,
[src]
T: IntoIterator<Item = Square>,
Creates a value from an iterator. Read more
impl Extend<Square> for Bitboard
[src]
fn extend<T: IntoIterator<Item = Square>>(&mut self, iter: T)
[src]
Extends a collection with the contents of an iterator. Read more