Module shakmaty::fen [] [src]

Parse and write Forsyth-Edwards-Notation.

Examples

fen::fen() and fen::epd() can produce a FEN for any Setup.

use shakmaty::fen;
use shakmaty::fen::FenOpts;
use shakmaty::Chess;

let pos = Chess::default();

assert_eq!(fen::epd(&pos, &FenOpts::default()),
           "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -");

Fen and Board also implement Display:

use shakmaty::fen::Fen;

let empty_fen = Fen::empty();
assert_eq!(empty_fen.to_string(), "8/8/8/8/8/8/8/8 w - - 0 1");

Parsing FENs:

use shakmaty::Position;

let input = "r1bqkbnr/ppp2Qpp/2np4/4p3/2B1P3/8/PPPP1PPP/RNB1K1NR b KQkq - 0 4";

let setup: Fen = input.parse()?;
let position: Chess = setup.position()?;
assert!(position.is_checkmate());

Structs

Fen

A parsed FEN.

FenOpts

FEN formatting options.

Enums

FenError

Errors that can occur when parsing a FEN.

Functions

board_fen

Create a board FEN such as rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR.

epd

Create an EPD such as rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq -.

fen

Create a FEN such as rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1.