Enum pgn_reader::San [] [src]

pub enum San {
    Normal {
        role: Role,
        file: Option<i8>,
        rank: Option<i8>,
        capture: bool,
        to: Square,
        promotion: Option<Role>,
    },
    Castle(CastlingSide),
    Put {
        role: Role,
        to: Square,
    },
    Null,
}

A move in Standard Algebraic Notation.

Variants

Fields of Normal

Fields of Put

Methods

impl San
[src]

[src]

Parses a SAN. Ignores a possible check or checkmate suffix.

Errors

Returns InvalidSan if san is not syntactically valid.

[src]

Tries to convert the San to a legal move in the context of a position.

Errors

Returns SanError if there is no matching legal move.

[src]

Test if the San can match the Move (in any position).

Examples

use shakmaty::{Square, Role, Move};
use shakmaty::san::San;

let m = Move::Normal {
    role: Role::Knight,
    from: Square::G1,
    to: Square::F3,
    capture: None,
    promotion: None,
};

let nf3 = San::from_bytes(b"Nf3")?;
assert!(nf3.matches(&m));

let ng1f3 = San::from_bytes(b"Ng1f3")?;
assert!(ng1f3.matches(&m));

// capture does not match
let nxf3 = San::from_bytes(b"Nxf3")?;
assert!(!nxf3.matches(&m));

// other file does not match
let nef3 = San::from_bytes(b"Nef3")?;
assert!(!nef3.matches(&m));

Trait Implementations

impl FromStr for San
[src]

The associated error which can be returned from parsing.

[src]

Parses a string s to return a value of this type. Read more

impl PartialEq<San> for San
[src]

[src]

This method tests for self and other values to be equal, and is used by ==. Read more

[src]

This method tests for !=.

impl Clone for San
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl Display for San
[src]

[src]

Formats the value using the given formatter. Read more

impl Eq for San
[src]

impl Debug for San
[src]

[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl Send for San

impl Sync for San