Skip to main content

StateEvaluation

Enum StateEvaluation 

Source
pub enum StateEvaluation<const N: usize> {
    Active(f32, [f32; N]),
    Terminal(f32),
}
Expand description

Represents the evaluation of a game state, usually provided by a heuristic function or a neural network (e.g., in AlphaZero/MuZero architectures).

This enum strictly binds the game’s termination status with its corresponding data, preventing the representation of invalid states (like a terminal state having future policies).

§Note on Score Perspective

The score value provided here (both in Active and Terminal states) must always be expressed from the perspective of the player who just made the move that led to this state. This ensures correct backpropagation in alternating-turn games when using the engine’s score_updater logic.

Variants§

§

Active(f32, [f32; N])

The game is ongoing. Contains the current board evaluation score and the prior probabilities (policies) for the next N possible actions.

§

Terminal(f32)

The game has ended. Contains only the final fixed score (e.g., 1.0 for win, -1.0 for loss).

Implementations§

Source§

impl<const N: usize> StateEvaluation<N>

Source

pub fn score(&self) -> f32

Extracts the score from the evaluation, regardless of whether the state is active or terminal.

§Returns

A floating-point value (f32) representing the underlying score of this state.

Trait Implementations§

Source§

impl<const N: usize> Clone for StateEvaluation<N>

Source§

fn clone(&self) -> StateEvaluation<N>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<const N: usize> Copy for StateEvaluation<N>

Source§

impl<const N: usize> Debug for StateEvaluation<N>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<const N: usize> PartialEq for StateEvaluation<N>

Source§

fn eq(&self, other: &StateEvaluation<N>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<const N: usize> StructuralPartialEq for StateEvaluation<N>

Auto Trait Implementations§

§

impl<const N: usize> Freeze for StateEvaluation<N>

§

impl<const N: usize> RefUnwindSafe for StateEvaluation<N>

§

impl<const N: usize> Send for StateEvaluation<N>

§

impl<const N: usize> Sync for StateEvaluation<N>

§

impl<const N: usize> Unpin for StateEvaluation<N>

§

impl<const N: usize> UnsafeUnpin for StateEvaluation<N>

§

impl<const N: usize> UnwindSafe for StateEvaluation<N>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.