1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! Defines the `Depth` type and its related constants.


/// Search depth in half-moves.
///
/// A value of this type can be interpreted in two ways:
///
/// *  **Remaining search depth.**
///
///    The remaining search depth tells how many half-moves should be
///    added to the current line of play before a leaf node is
///    reached. Usually, searches are started with some positive
///    number as their remaining search depth. This number is
///    decremented when a move is tried, and the search routine is
///    called recursively. When the remaining depth becomes zero (or
///    less), a leaf node has been reached and a quiescence search is
///    performed to obtain reliable evaluation. Sometimes depth
///    reductions are applied for less interesting moves. This means
///    that the remaining search depth is decreased by more than
///    one. Thus, if such reductions are applied near leaf nodes, the
///    remaining search depth may become negative.
///
/// *  **Completed search depth.**
///
///    The completed search depth tells the depth in half-moves to
///    which a position has been analyzed. Negative values are
///    possible, meaning that a quiescence search with a negative
///    remaining search depth has been executed for the position.
///
/// # Limits:
///
/// * `DEPTH_MAX` is the maximum allowed search depth in half-moves (a
///   positive number).
///
/// * `DEPTH_MIN` is the minimum allowed search depth in half-moves (a
///   negative number).
pub type Depth = i8;

pub const DEPTH_MIN: i8 = -32;
pub const DEPTH_MAX: i8 = 95;