|
|
|
//! Commands contains the command constants expected during the UCI lifecycle
|
|
|
|
//! It is useful to note many of these commands do not end with '\n'. This is because they expect arguments.
|
|
|
|
|
|
|
|
///////// GUI to Engine /////////
|
|
|
|
|
|
|
|
/// Tell engine to use the UCI (Universal Chess Interface)
|
|
|
|
pub const UCI: &'static str = "uci\n";
|
|
|
|
|
|
|
|
/// DEBUG toggles the debug mode of the engine on or off
|
|
|
|
pub const DEBUG: &'static str = "debug";
|
|
|
|
pub const DEBUGON: &'static str = "on";
|
|
|
|
pub const DEBUGOFF: &'static str = "off";
|
|
|
|
|
|
|
|
/// ISREADY synchronizes the engine with the GUI
|
|
|
|
pub const ISREADY: &'static str = "isready\n";
|
|
|
|
|
|
|
|
/// SETOPTION is sent to the engine when the user wants to change an internal parameter
|
|
|
|
pub const SETOPTION: &'static str = "setoption";
|
|
|
|
|
|
|
|
/// REGISTER is the command used to try to register an engine or tell the engine that registration will be done
|
|
|
|
/// later
|
|
|
|
pub const REGISTER: &'static str = "register";
|
|
|
|
|
|
|
|
/// UCINEWGAME is sent to the engine when the next search (started with "position" and "go") will be from a different
|
|
|
|
/// game
|
|
|
|
pub const UCINEWGAME: &'static str = "ucinewgame\n";
|
|
|
|
|
|
|
|
/// POSITION is sent to set up the position described in fenstring on the internal board and play the moves on the
|
|
|
|
/// internal chess board
|
|
|
|
pub const POSITION: &'static str = "position";
|
|
|
|
|
|
|
|
/// GO signals to start calculating on the current position set up with the "position" command
|
|
|
|
pub const GO: &'static str = "go\n";
|
|
|
|
|
|
|
|
/// STOP signals to stop calculating as soon as possible
|
|
|
|
pub const STOP: &'static str = "stop\n";
|
|
|
|
|
|
|
|
/// PONDERHIT will be sent if the engine was told to ponder on the same move the user has played
|
|
|
|
pub const PONDERHIT: &'static str = "ponderhit\n";
|
|
|
|
|
|
|
|
/// QUIT signals to quit the program as soon as possible
|
|
|
|
pub const QUIT: &'static str = "quit\n";
|
|
|
|
|
|
|
|
|
|
|
|
///////// Engine to GUI /////////
|
|
|
|
|
|
|
|
|
|
|
|
/// ID is used to signal the engine name and author to the GUI
|
|
|
|
pub const ID: &'static str = "id";
|
|
|
|
|
|
|
|
/// UCIOK is sent after the ID and optional options to tell the GUI that the engine has sent all infos and is ready
|
|
|
|
/// in UCI mode
|
|
|
|
pub const UCIOK: &'static str = "uciok\n";
|
|
|
|
|
|
|
|
/// READYOK is sent when the engine has received an "isready" command and has processed all input and is ready to
|
|
|
|
/// accept new commands now
|
|
|
|
pub const READYOK: &'static str = "readyok\n";
|
|
|
|
|
|
|
|
/// BESTMOVE is sent when the engine has stopped searching and found the move best in this position
|
|
|
|
pub const BESTMOVE: &'static str = "bestmove";
|
|
|
|
|
|
|
|
/// COPYPROTECTIONCHECKING tells the GUI that the engine is checking the copy protection
|
|
|
|
pub const COPYPROTECTIONCHECKING: &'static str = "copyprotection checking\n";
|
|
|
|
|
|
|
|
/// COPYPROTECTIONOK tells the GUI that the engine has verified the copy protection
|
|
|
|
pub const COPYPROTECTIONOK: &'static str = "copyprotection ok\n";
|
|
|
|
|
|
|
|
/// COPYPROTECTIONERROR tells the GUI that the engine has rejected the copy protection
|
|
|
|
pub const COPYPROTECTIONERROR: &'static str = "copyprotection error\n";
|
|
|
|
|
|
|
|
/// REGISTRATIONCHECKING tells the GUI that the engine is checking the registration
|
|
|
|
pub const REGISTRATIONCHECKING: &'static str = "registration checking\n";
|
|
|
|
|
|
|
|
/// REGISTRATIONOK tells the GUI that the engine the registration has been verified
|
|
|
|
pub const REGISTRATIONOK: &'static str = "registration ok\n";
|
|
|
|
|
|
|
|
/// REGISTRATIONERROR tells the GUI that the engine has rejected the registration
|
|
|
|
pub const REGISTRATIONERROR: &'static str = "registration error\n";
|
|
|
|
|
|
|
|
/// INFO tells the GUI the engine wants to sent infos to the GUI. This should be done whenever the info has changed
|
|
|
|
pub const INFO: &'static str = "info";
|
|
|
|
|
|
|
|
/// OPTION tells the GUI which parameters can be changed in the engine
|
|
|
|
pub const OPTION: &'static str = "option";
|