chesspos

Crates.iochesspos
lib.rschesspos
version0.2.0
sourcesrc
created_at2023-09-21 08:48:11.599781
updated_at2024-09-20 21:55:23.361533
descriptionBasic structs for representing chess squares
homepagehttps://github.com/ijagberg/chesspos
repositoryhttps://github.com/ijagberg/chesspos
max_upload_size
id979206
size43,883
Isak Jägberg (ijagberg)

documentation

README

chesspos

Useful structs and constants for representing chess board positions.

Position

The main point of this library is the Position struct, which represents a position on a chess board.

use chesspos::prelude::*;

// each position is defined as a const,
// and can be referred to like this:
let a4 = A4;

// the Position struct has various methods
// useful for chess programming
assert_eq!(B4, a4.right().unwrap()); // get the position to the right of A4
assert!(a4.left().is_none()); // no position to the left of A4

Rank & File

There's also a Rank and a File enum, which is useful for traversal and iteration.

use chesspos::prelude::*;

assert_eq!(File::G.iter().collect(), vec![G1, G2, G3, G4, G5, G6, G7, G8]);
assert_eq!(Rank::Two.iter().collect(), vec![A2, B2, C2, D2, E2, F2, G2, H2]);
Commit count: 14

cargo fmt