Enum SgfToken

Source
pub enum SgfToken {
Show 29 variants Add { color: Color, coordinate: (u8, u8), }, Move { color: Color, action: Action, }, Time { color: Color, time: u32, }, PlayerName { color: Color, name: String, }, PlayerRank { color: Color, rank: String, }, Game(Game), Rule(RuleSet), Result(Outcome), Komi(f32), Event(String), Copyright(String), GameName(String), VariationDisplay { nodes: DisplayNodes, on_board_display: bool, }, Place(String), Date(String), Size(u32, u32), FileFormat(u8), Overtime(String), TimeLimit(u32), MovesRemaining { color: Color, moves: u32, }, Handicap(u32), Comment(String), Charset(Encoding), Application { name: String, version: String, }, Unknown((String, String)), Invalid((String, String)), Square { coordinate: (u8, u8), }, Triangle { coordinate: (u8, u8), }, Label { label: String, coordinate: (u8, u8), },
}
Expand description

Enum describing all possible SGF Properties

Variants§

§

Add

Fields

§color: Color
§coordinate: (u8, u8)
§

Move

Fields

§color: Color
§action: Action
§

Time

Fields

§color: Color
§time: u32
§

PlayerName

Fields

§color: Color
§name: String
§

PlayerRank

Fields

§color: Color
§rank: String
§

Game(Game)

§

Rule(RuleSet)

§

Result(Outcome)

§

Komi(f32)

§

Event(String)

§

Copyright(String)

§

GameName(String)

§

VariationDisplay

Fields

§on_board_display: bool
§

Place(String)

§

Date(String)

§

Size(u32, u32)

§

FileFormat(u8)

§

Overtime(String)

§

TimeLimit(u32)

§

MovesRemaining

Fields

§color: Color
§moves: u32
§

Handicap(u32)

§

Comment(String)

§

Charset(Encoding)

§

Application

Fields

§name: String
§version: String
§

Unknown((String, String))

§

Invalid((String, String))

§

Square

Fields

§coordinate: (u8, u8)
§

Triangle

Fields

§coordinate: (u8, u8)
§

Label

Fields

§label: String
§coordinate: (u8, u8)

Implementations§

Source§

impl SgfToken

Source

pub fn from_pair(base_ident: &str, value: &str) -> SgfToken

Converts a identifier and value pair to a SGF token

Returns SgfToken::Unknown((identifier, value)) for tokens without a matching identifier

Returns SgfToken::Invalid((identifier, value)) for tokens with a matching identifier, but invalid value

use sgf_parser::*;

let token = SgfToken::from_pair("B", "aa");
assert_eq!(token, SgfToken::Move { color: Color::Black, action: Action::Move(1, 1) });

let token = SgfToken::from_pair("B", "");
assert_eq!(token, SgfToken::Move { color: Color::Black, action: Action::Pass });

let token = SgfToken::from_pair("B", "not_coord");
assert_eq!(token, SgfToken::Invalid(("B".to_string(), "not_coord".to_string())));

let token = SgfToken::from_pair("FOO", "aa");
assert_eq!(token, SgfToken::Unknown(("FOO".to_string(), "aa".to_string())));
Source

pub fn is_root_token(&self) -> bool

Checks if the token is a root token as defined by the SGF spec.

Root tokens can only occur in the root of a gametree collection, and they are invalid anywhere else

use sgf_parser::*;

let token = SgfToken::from_pair("SZ", "19");
assert!(token.is_root_token());

let token = SgfToken::from_pair("B", "aa");
assert!(!token.is_root_token());
Source

pub fn is_setup_token(&self) -> bool

Checks if the token is a setup token as defined by the SGF spec.

Setup tokens modify the current position, and should not be on the same node as move tokens

use sgf_parser::*;

let token = SgfToken::from_pair("AB", "aa");
assert!(token.is_setup_token());

let token = SgfToken::from_pair("SZ", "19");
assert!(!token.is_setup_token());
Source

pub fn is_game_info_token(&self) -> bool

Checks if the token is a game info token as defined by the SGF spec.

Game info tokens provide some information about the game played, usually stored in the root node

use sgf_parser::*;

let token = SgfToken::from_pair("RE", "W+T");
assert!(token.is_game_info_token());

let token = SgfToken::from_pair("SZ", "19");
assert!(!token.is_game_info_token());

Trait Implementations§

Source§

impl Clone for SgfToken

Source§

fn clone(&self) -> SgfToken

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SgfToken

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Into<String> for &SgfToken

Source§

fn into(self) -> String

Converts this type into the (usually inferred) input type.
Source§

impl Into<String> for SgfToken

Source§

fn into(self) -> String

Converts this type into the (usually inferred) input type.
Source§

impl PartialEq for SgfToken

Source§

fn eq(&self, other: &SgfToken) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for SgfToken

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.