[][src]Enum cetkaik_yhuap_move_candidates::pure_move::PureMove

pub enum PureMove {
    NonTamMoveSrcDst {
        src: Coord,
        dest: Coord,
        is_water_entry_ciurl: bool,
    },
    NonTamMoveSrcStepDstFinite {
        src: Coord,
        step: Coord,
        dest: Coord,
        is_water_entry_ciurl: bool,
    },
    InfAfterStep {
        src: Coord,
        step: Coord,
        planned_direction: Coord,
    },
    NonTamMoveFromHand {
        color: Color,
        prof: Profession,
        dest: Coord,
    },
    TamMoveNoStep {
        src: Coord,
        first_dest: Coord,
        second_dest: Coord,
    },
    TamMoveStepsDuringFormer {
        src: Coord,
        step: Coord,
        first_dest: Coord,
        second_dest: Coord,
    },
    TamMoveStepsDuringLatter {
        src: Coord,
        step: Coord,
        first_dest: Coord,
        second_dest: Coord,
    },
}

Variants

NonTamMoveSrcDst

Fields of NonTamMoveSrcDst

src: Coorddest: Coordis_water_entry_ciurl: bool
NonTamMoveSrcStepDstFinite

Fields of NonTamMoveSrcStepDstFinite

src: Coordstep: Coorddest: Coordis_water_entry_ciurl: bool
InfAfterStep

Fields of InfAfterStep

src: Coordstep: Coordplanned_direction: Coord
NonTamMoveFromHand

Fields of NonTamMoveFromHand

color: Colorprof: Professiondest: Coord
TamMoveNoStep

Fields of TamMoveNoStep

src: Coordfirst_dest: Coordsecond_dest: Coord
TamMoveStepsDuringFormer

Fields of TamMoveStepsDuringFormer

src: Coordstep: Coordfirst_dest: Coordsecond_dest: Coord
TamMoveStepsDuringLatter

Fields of TamMoveStepsDuringLatter

src: Coordstep: Coordfirst_dest: Coordsecond_dest: Coord

Implementations

impl PureMove[src]

#[must_use]pub fn serialize(self) -> String[src]

Serializes PureMove in textual form.

Examples

use cetkaik_yhuap_move_candidates::*;
use cetkaik_yhuap_move_candidates::pure_move::*;
use cetkaik_core::*;

assert_eq!(PureMove::InfAfterStep {
    src: (absolute::Row::A, absolute::Column::Z),
    step: (absolute::Row::E, absolute::Column::T),
    planned_direction: (absolute::Row::E, absolute::Column::N)
}.serialize(), "ZA片TE心NE");

assert_eq!(PureMove::NonTamMoveFromHand {
    color: Color::Huok2,
    prof: Profession::Gua2,
    dest: (absolute::Row::IA, absolute::Column::L)
}.serialize(), "黒弓LIA");

assert_eq!(PureMove::NonTamMoveSrcDst {
    src: (absolute::Row::A, absolute::Column::Z),
    dest: (absolute::Row::E, absolute::Column::N),
    is_water_entry_ciurl: true
}.serialize(), "ZA片NE水");

assert_eq!(PureMove::NonTamMoveSrcStepDstFinite {
    src: (absolute::Row::A, absolute::Column::Z),
    step: (absolute::Row::E, absolute::Column::T),
    dest: (absolute::Row::E, absolute::Column::N),
    is_water_entry_ciurl: false
}.serialize(), "ZA片TENE");

// Note that [] denotes the first destination.
// Since the first destination is neither the stepping square nor the final square,
// it is not to be written in the standard notation.
// Hence this additional information is denoted by [].
assert_eq!(PureMove::TamMoveStepsDuringFormer {
    src: (absolute::Row::E, absolute::Column::K),
    step: (absolute::Row::I, absolute::Column::L),
    first_dest: (absolute::Row::I, absolute::Column::K),
    second_dest: (absolute::Row::E, absolute::Column::L)
}.serialize(), "KE皇LI[KI]LE");

assert_eq!(PureMove::TamMoveNoStep {
    src: (absolute::Row::E, absolute::Column::K),
    first_dest: (absolute::Row::I, absolute::Column::K),
    second_dest: (absolute::Row::E, absolute::Column::K)
}.serialize(), "KE皇[KI]KE");

assert_eq!(PureMove::TamMoveStepsDuringLatter {
    src: (absolute::Row::E, absolute::Column::K),
    first_dest: (absolute::Row::I, absolute::Column::K),
    step: (absolute::Row::I, absolute::Column::L),
    second_dest: (absolute::Row::E, absolute::Column::L)
}.serialize(), "KE皇[KI]LILE");

Trait Implementations

impl Clone for PureMove[src]

impl Copy for PureMove[src]

impl Debug for PureMove[src]

impl Eq for PureMove[src]

impl Hash for PureMove[src]

impl PartialEq<PureMove> for PureMove[src]

impl StructuralEq for PureMove[src]

impl StructuralPartialEq for PureMove[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.