Struct myopic_brain::negascout::Scout[][src]

pub struct Scout<'a, T, B, M> where
    T: SearchTerminator,
    B: EvalChessBoard,
    M: MoveQualityEstimator<B>, 
{ pub terminator: &'a T, pub ordering_hints: &'a OrderingHints<B>, pub transposition_table: &'a mut TranspositionTable, pub move_quality_estimator: M, pub board_type: PhantomData<B>, }

Fields

terminator: &'a T

The terminator is responsible for deciding when the search is complete

ordering_hints: &'a OrderingHints<B>

Precomputed hints for helping to order moves generated for positions in the search tree. These can be thought of as ‘pure’ hints which aren’t changed during the search.

transposition_table: &'a mut TranspositionTable

Cache of search information for all nodes in the tree which is shared across searches during an iterative deepening run. It can be thought of as transient information to give further hints for ordering and to skip searches if we already have sufficient information for that part of the tree.

move_quality_estimator: M

Used for performing an initial sort on the moves generated in each position for optimising the search

board_type: PhantomData<B>

Placeholder to satisfy the compiler because of the ‘unused’ type parameter for the board

Implementations

impl<T, B, M> Scout<'_, T, B, M> where
    T: SearchTerminator,
    B: EvalChessBoard,
    M: MoveQualityEstimator<B>, 
[src]

pub fn search(
    &mut self,
    root: &mut B,
    ctx: SearchContext
) -> Result<SearchResponse>
[src]

Auto Trait Implementations

impl<'a, T, B, M> RefUnwindSafe for Scout<'a, T, B, M> where
    B: RefUnwindSafe,
    M: RefUnwindSafe,
    T: RefUnwindSafe

impl<'a, T, B, M> Send for Scout<'a, T, B, M> where
    B: Sync,
    M: Send,
    T: Sync

impl<'a, T, B, M> Sync for Scout<'a, T, B, M> where
    B: Sync,
    M: Sync,
    T: Sync

impl<'a, T, B, M> Unpin for Scout<'a, T, B, M> where
    B: Unpin,
    M: Unpin

impl<'a, T, B, M> !UnwindSafe for Scout<'a, T, B, M>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T

Notable traits for &'_ mut I

impl<'_, I> Iterator for &'_ mut I where
    I: Iterator + ?Sized
type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
    F: Future + Unpin + ?Sized
type Output = <F as Future>::Output;
[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

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

Notable traits for &'_ mut I

impl<'_, I> Iterator for &'_ mut I where
    I: Iterator + ?Sized
type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
    F: Future + Unpin + ?Sized
type Output = <F as Future>::Output;
[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.