Skip to main content

RolloutSearch

Struct RolloutSearch 

Source
pub struct RolloutSearch<'a, R: Sides, O, P, E> { /* private fields */ }
Expand description

A decision of a Rollout bot under way: its loop state in a value, so the work can be split over many calls (frames, later).

Implementations§

Source§

impl<R, O, P, E> RolloutSearch<'_, R, O, P, E>
where R: Determinize, R::Command: Clone + PartialEq, O: Order<R>, P: Playout<R>, E: Evaluate<R>,

Source

pub fn advance(&mut self, units: u32) -> Option<R::Command>

Does at most units units of work (commands applied to copies) and returns the chosen command once the decision is made, None while it is working. Once made, it returns the same command again.

§Panics

With a message naming determinize when a copy lists other commands than the real state, or refuses a candidate: a bug in the game’s Determinize::determinize.

Auto Trait Implementations§

§

impl<'a, R, O, P, E> !UnwindSafe for RolloutSearch<'a, R, O, P, E>

§

impl<'a, R, O, P, E> Freeze for RolloutSearch<'a, R, O, P, E>
where R: Freeze, <R as Sides>::Side: Freeze, <R as TurnRules>::Command: Freeze,

§

impl<'a, R, O, P, E> RefUnwindSafe for RolloutSearch<'a, R, O, P, E>

§

impl<'a, R, O, P, E> Send for RolloutSearch<'a, R, O, P, E>
where R: Send, <R as Sides>::Side: Send, <R as TurnRules>::Command: Send, O: Send, P: Send, E: Send,

§

impl<'a, R, O, P, E> Sync for RolloutSearch<'a, R, O, P, E>
where R: Sync, <R as Sides>::Side: Sync, <R as TurnRules>::Command: Sync, O: Sync, P: Sync, E: Sync,

§

impl<'a, R, O, P, E> Unpin for RolloutSearch<'a, R, O, P, E>
where R: Unpin, <R as Sides>::Side: Unpin, <R as TurnRules>::Command: Unpin,

§

impl<'a, R, O, P, E> UnsafeUnpin for RolloutSearch<'a, R, O, P, E>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.