pub fn parse_san_move(board: &Board, mv: &str) -> Result<Move, MoveParseError>
Expand description

Parses a Standard Algebraic Notation move into a Move.

Canonical SAN is guaranteed to parse correctly, but non-canonical SAN may or may not parse. The returned move is always legal.

§Examples

let board: Board = "3k2n1/7P/Q3p3/4BPp1/Q1Q4q/8/5B2/R3K2R w KQ g6 0 1"
    .parse().unwrap();
let mv: Move = "h7g8r".parse().unwrap();
assert_eq!(parse_san_move(&board, "hxg8=R").unwrap(), mv);
let mv: Move = "e1a1".parse().unwrap();
assert_eq!(parse_san_move(&board, "O-O-O+").unwrap(), mv);
let mv: Move = "e5d4".parse().unwrap();
assert_eq!(parse_san_move(&board, "Bd4").unwrap(), mv);