Enum shakmaty_syzygy::Wdl

source ·
#[repr(i32)]
pub enum Wdl { Loss = -2, BlessedLoss = -1, Draw = 0, CursedWin = 1, Win = 2, }
Expand description

WDL50. 5-valued evaluation of a position in the context of the 50-move drawing rule.

Variants§

§

Loss = -2

Unconditional loss.

§

BlessedLoss = -1

Loss that can be saved by the 50-move rule.

§

Draw = 0

Unconditional draw.

§

CursedWin = 1

Win that can be frustrated by the 50-move rule.

§

Win = 2

Unconditional win.

Implementations§

source§

impl Wdl

source

pub fn from_outcome(outcome: Outcome, pov: Color) -> Wdl

Converts outcome to a Wdl from the given point of view.

source

pub fn from_dtz_after_zeroing(dtz: MaybeRounded<Dtz>) -> Wdl

Converts dtz to Wdl.

In general the result would be ambiguous for MaybeRounded::Rounded(Dtz(100)) and MaybeRounded::Rounded(Dtz(-100)). This conversion assumes that such values were given immediately after a capture or pawn move, in which case the outcome is an unconditional win or loss.

Since playing the tablebase mainline preserves the game theoretical outcome, this method may also be used on dtz.add_plies(plies) if the mainline has been followed for plies halfmoves since the last capture or pawn move.

source

pub fn from_dtz(dtz: Dtz) -> Wdl

Converts dtz to Wdl.

§Examples
use shakmaty_syzygy::{Dtz, Wdl};

assert_eq!(Wdl::from_dtz(Dtz(98).add_plies(3)), Wdl::CursedWin);
source

pub fn signum(self) -> i32

Returns a number representing the sign of self.

  • 1 if self > Wdl::Draw
  • 0 if self == Wdl::Draw
  • -1 if self < Wdl::Draw

Trait Implementations§

source§

impl Clone for Wdl

source§

fn clone(&self) -> Wdl

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for Wdl

source§

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

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

impl From<Wdl> for AmbiguousWdl

source§

fn from(wdl: Wdl) -> AmbiguousWdl

Converts to this type from the input type.
source§

impl From<Wdl> for i128

source§

fn from(wdl: Wdl) -> i128

Converts to this type from the input type.
source§

impl From<Wdl> for i16

source§

fn from(wdl: Wdl) -> i16

Converts to this type from the input type.
source§

impl From<Wdl> for i32

source§

fn from(wdl: Wdl) -> i32

Converts to this type from the input type.
source§

impl From<Wdl> for i64

source§

fn from(wdl: Wdl) -> i64

Converts to this type from the input type.
source§

impl From<Wdl> for i8

source§

fn from(wdl: Wdl) -> i8

Converts to this type from the input type.
source§

impl From<Wdl> for isize

source§

fn from(wdl: Wdl) -> isize

Converts to this type from the input type.
source§

impl Hash for Wdl

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl Neg for Wdl

§

type Output = Wdl

The resulting type after applying the - operator.
source§

fn neg(self) -> Wdl

Performs the unary - operation. Read more
source§

impl Ord for Wdl

source§

fn cmp(&self, other: &Wdl) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Wdl

source§

fn eq(&self, other: &Wdl) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PartialOrd for Wdl

source§

fn partial_cmp(&self, other: &Wdl) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

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

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

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

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

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

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

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

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl Copy for Wdl

source§

impl Eq for Wdl

source§

impl StructuralPartialEq for Wdl

Auto Trait Implementations§

§

impl Freeze for Wdl

§

impl RefUnwindSafe for Wdl

§

impl Send for Wdl

§

impl Sync for Wdl

§

impl Unpin for Wdl

§

impl UnwindSafe for Wdl

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

§

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>,

§

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>,

§

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.