Skip to main content

PlayTrace

Struct PlayTrace 

Source
pub struct PlayTrace {
    pub board: Board,
    pub cards: ArrayVec<Card, 52>,
}
Expand description

A starting board and a sequence of cards played from it

Input to Solver::analyse_play. The two fields split the position and the play-trace cleanly:

  • board is the snapshot from which analysis begins. It encodes the state at the start of a trick — possibly with up to three cards already on the table in Board::current_cards — and Board::remaining holds only the cards still in each hand. Cards from previously completed tricks are not represented individually; they are simply absent from remaining.
  • cards is the play trace to replay from that snapshot, in chronological order. The first card in cards is whichever card comes after any already in board.current_cards — it does not restart the trick or repeat prior history. Each card must be legal (follow suit when possible and be held by the player on turn).

cards may span trick boundaries; DDS tracks trick completion and whose lead follows internally. The trace length may be any value from 0 to 52.

Fields§

§board: Board

Snapshot at the start of analysis: state at the start of the current trick, plus any 0–3 cards already played to it via Board::current_cards

§cards: ArrayVec<Card, 52>

Cards played after board, in chronological order; may cross tricks

Trait Implementations§

Source§

impl Clone for PlayTrace

Source§

fn clone(&self) -> PlayTrace

Returns a duplicate 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 PlayTrace

Source§

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

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

impl Hash for PlayTrace

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 PartialEq for PlayTrace

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Eq for PlayTrace

Source§

impl StructuralPartialEq for PlayTrace

Auto Trait Implementations§

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.