+typedef std::vector<RootMove> RootMoveVector;
+
+/// LimitsType struct stores information sent by GUI about available time to
+/// search the current move, maximum depth/time, if we are in analysis mode or
+/// if we have to ponder while it's our opponent's turn to move.
+
+struct LimitsType {
+
+ LimitsType() { // Init explicitly due to broken value-initialization of non POD in MSVC
+ nodes = time[WHITE] = time[BLACK] = inc[WHITE] = inc[BLACK] = movestogo =
+ depth = movetime = mate = infinite = ponder = 0;
+ }
+
+ bool use_time_management() const {
+ return !(mate | movetime | depth | nodes | infinite);
+ }
+
+ std::vector<Move> searchmoves;
+ int time[COLOR_NB], inc[COLOR_NB], movestogo, depth, movetime, mate, infinite, ponder;
+ int64_t nodes;
+};