Skip to main content

PlanSearch

Struct PlanSearch 

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

A decision of a TurnPlan 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, E> PlanSearch<'_, R, O, E>
where R: Determinize, R::Command: Clone + PartialEq, O: Order<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 of the root refuses one of its candidates: a bug in the game’s Determinize::determinize.

Auto Trait Implementations§

§

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

§

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

§

impl<'a, R, O, E> RefUnwindSafe for PlanSearch<'a, R, O, E>

§

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

§

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

§

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

§

impl<'a, R, O, E> UnsafeUnpin for PlanSearch<'a, R, O, 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.