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
Move
Time
PlayerName
PlayerRank
Game(Game)
Rule(RuleSet)
Result(Outcome)
Komi(f32)
Event(String)
Copyright(String)
GameName(String)
VariationDisplay
Place(String)
Date(String)
Size(u32, u32)
FileFormat(u8)
Overtime(String)
TimeLimit(u32)
MovesRemaining
Handicap(u32)
Comment(String)
Charset(Encoding)
Application
Unknown((String, String))
Invalid((String, String))
Square
Triangle
Label
Implementations§
Source§impl SgfToken
impl SgfToken
Sourcepub fn from_pair(base_ident: &str, value: &str) -> SgfToken
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())));
Sourcepub fn is_root_token(&self) -> bool
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());
Sourcepub fn is_setup_token(&self) -> bool
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());
Sourcepub fn is_game_info_token(&self) -> bool
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());