pub trait CetkaikRepresentation {
type Perspective: Copy + Eq;
type AbsoluteCoord: Copy + Eq + Debug;
type RelativeCoord: Copy + Eq;
type AbsoluteBoard: Clone + Debug + IsAbsoluteBoard<PieceWithSide = Self::AbsolutePiece, Coord = Self::AbsoluteCoord>;
type RelativeBoard: Copy + IsBoard<PieceWithSide = Self::RelativePiece, Coord = Self::RelativeCoord>;
type AbsolutePiece: Copy + Eq + IsPieceWithSide<Side = AbsoluteSide>;
type RelativePiece: Copy + Eq + IsPieceWithSide<Side = Self::RelativeSide>;
type AbsoluteField: Clone + Debug + IsField<PieceWithSide = Self::AbsolutePiece, Coord = Self::AbsoluteCoord, Side = AbsoluteSide, Board = Self::AbsoluteBoard> + IsAbsoluteField;
type RelativeField;
type RelativeSide: Copy + Eq;
Show 28 methods
fn to_absolute_coord(
coord: Self::RelativeCoord,
p: Self::Perspective
) -> Self::AbsoluteCoord;
fn to_relative_coord(
coord: Self::AbsoluteCoord,
p: Self::Perspective
) -> Self::RelativeCoord;
fn add_delta(
coord: Self::RelativeCoord,
row_delta: isize,
col_delta: isize
) -> Option<Self::RelativeCoord>;
fn is_tam_hue_by_default(coord: Self::RelativeCoord) -> bool;
fn relative_tam2() -> Self::RelativePiece;
fn absolute_tam2() -> Self::AbsolutePiece;
fn is_upward(s: Self::RelativeSide) -> bool;
fn as_board_absolute(field: &Self::AbsoluteField) -> &Self::AbsoluteBoard;
fn as_board_mut_absolute(
field: &mut Self::AbsoluteField
) -> &mut Self::AbsoluteBoard;
fn as_board_relative(field: &Self::RelativeField) -> &Self::RelativeBoard;
fn is_water_relative(c: Self::RelativeCoord) -> bool;
fn is_water_absolute(c: Self::AbsoluteCoord) -> bool;
fn loop_over_one_side_and_tam(
board: &Self::RelativeBoard,
side: Self::RelativeSide,
f_tam_or_piece: &mut dyn FnMut(Self::RelativeCoord, Option<Profession>)
);
fn to_relative_field(
field: Self::AbsoluteField,
p: Self::Perspective
) -> Self::RelativeField;
fn to_relative_side(
side: AbsoluteSide,
p: Self::Perspective
) -> Self::RelativeSide;
fn get_one_perspective() -> Self::Perspective;
fn absolute_distance(a: Self::AbsoluteCoord, b: Self::AbsoluteCoord) -> i32;
fn absolute_same_direction(
origin: Self::AbsoluteCoord,
a: Self::AbsoluteCoord,
b: Self::AbsoluteCoord
) -> bool;
fn relative_get(
board: Self::RelativeBoard,
coord: Self::RelativeCoord
) -> Option<Self::RelativePiece> { ... }
fn relative_clone_and_set(
board: &Self::RelativeBoard,
coord: Self::RelativeCoord,
p: Option<Self::RelativePiece>
) -> Self::RelativeBoard { ... }
fn absolute_get(
board: &Self::AbsoluteBoard,
coord: Self::AbsoluteCoord
) -> Option<Self::AbsolutePiece> { ... }
fn match_on_piece_and_apply<U>(
piece: Self::RelativePiece,
f_tam: &dyn Fn() -> U,
f_piece: &dyn Fn(Profession, Self::RelativeSide) -> U
) -> U { ... }
fn match_on_relative_piece_and_apply<U>(
piece: Self::RelativePiece,
f_tam: &dyn Fn() -> U,
f_piece: &dyn Fn(Color, Profession, Self::RelativeSide) -> U
) -> U { ... }
fn match_on_absolute_piece_and_apply<U>(
piece: Self::AbsolutePiece,
f_tam: &dyn Fn() -> U,
f_piece: &dyn Fn(Color, Profession, AbsoluteSide) -> U
) -> U { ... }
fn empty_squares_relative(
board: &Self::RelativeBoard
) -> Vec<Self::RelativeCoord> { ... }
fn empty_squares_absolute(
board: &Self::AbsoluteBoard
) -> Vec<Self::AbsoluteCoord> { ... }
fn hop1zuo1_of(
side: AbsoluteSide,
field: &Self::AbsoluteField
) -> Vec<ColorAndProf> { ... }
fn has_prof_absolute(piece: Self::AbsolutePiece, prof: Profession) -> bool { ... }
}
Required Associated Types§
type Perspective: Copy + Eq
type AbsoluteCoord: Copy + Eq + Debug
type RelativeCoord: Copy + Eq
type AbsoluteBoard: Clone + Debug + IsAbsoluteBoard<PieceWithSide = Self::AbsolutePiece, Coord = Self::AbsoluteCoord>
type RelativeBoard: Copy + IsBoard<PieceWithSide = Self::RelativePiece, Coord = Self::RelativeCoord>
type AbsolutePiece: Copy + Eq + IsPieceWithSide<Side = AbsoluteSide>
type RelativePiece: Copy + Eq + IsPieceWithSide<Side = Self::RelativeSide>
type AbsoluteField: Clone + Debug + IsField<PieceWithSide = Self::AbsolutePiece, Coord = Self::AbsoluteCoord, Side = AbsoluteSide, Board = Self::AbsoluteBoard> + IsAbsoluteField
type RelativeField
type RelativeSide: Copy + Eq
Required Methods§
fn to_absolute_coord(
coord: Self::RelativeCoord,
p: Self::Perspective
) -> Self::AbsoluteCoord
fn to_relative_coord(
coord: Self::AbsoluteCoord,
p: Self::Perspective
) -> Self::RelativeCoord
fn add_delta(
coord: Self::RelativeCoord,
row_delta: isize,
col_delta: isize
) -> Option<Self::RelativeCoord>
fn is_tam_hue_by_default(coord: Self::RelativeCoord) -> bool
fn relative_tam2() -> Self::RelativePiece
fn absolute_tam2() -> Self::AbsolutePiece
fn is_upward(s: Self::RelativeSide) -> bool
fn as_board_absolute(field: &Self::AbsoluteField) -> &Self::AbsoluteBoard
fn as_board_mut_absolute(
field: &mut Self::AbsoluteField
) -> &mut Self::AbsoluteBoard
fn as_board_relative(field: &Self::RelativeField) -> &Self::RelativeBoard
fn is_water_relative(c: Self::RelativeCoord) -> bool
fn is_water_absolute(c: Self::AbsoluteCoord) -> bool
fn loop_over_one_side_and_tam(
board: &Self::RelativeBoard,
side: Self::RelativeSide,
f_tam_or_piece: &mut dyn FnMut(Self::RelativeCoord, Option<Profession>)
)
fn to_relative_field(
field: Self::AbsoluteField,
p: Self::Perspective
) -> Self::RelativeField
fn to_relative_side(
side: AbsoluteSide,
p: Self::Perspective
) -> Self::RelativeSide
fn get_one_perspective() -> Self::Perspective
fn absolute_distance(a: Self::AbsoluteCoord, b: Self::AbsoluteCoord) -> i32
fn absolute_same_direction(
origin: Self::AbsoluteCoord,
a: Self::AbsoluteCoord,
b: Self::AbsoluteCoord
) -> bool
Provided Methods§
sourcefn relative_get(
board: Self::RelativeBoard,
coord: Self::RelativeCoord
) -> Option<Self::RelativePiece>
fn relative_get(
board: Self::RelativeBoard,
coord: Self::RelativeCoord
) -> Option<Self::RelativePiece>
👎Deprecated: Use
board.peek(coord)
sourcefn relative_clone_and_set(
board: &Self::RelativeBoard,
coord: Self::RelativeCoord,
p: Option<Self::RelativePiece>
) -> Self::RelativeBoard
fn relative_clone_and_set(
board: &Self::RelativeBoard,
coord: Self::RelativeCoord,
p: Option<Self::RelativePiece>
) -> Self::RelativeBoard
👎Deprecated: Use
new_board.put(coord, p)
sourcefn absolute_get(
board: &Self::AbsoluteBoard,
coord: Self::AbsoluteCoord
) -> Option<Self::AbsolutePiece>
fn absolute_get(
board: &Self::AbsoluteBoard,
coord: Self::AbsoluteCoord
) -> Option<Self::AbsolutePiece>
👎Deprecated: Use
board.peek(coord)
sourcefn match_on_piece_and_apply<U>(
piece: Self::RelativePiece,
f_tam: &dyn Fn() -> U,
f_piece: &dyn Fn(Profession, Self::RelativeSide) -> U
) -> U
fn match_on_piece_and_apply<U>(
piece: Self::RelativePiece,
f_tam: &dyn Fn() -> U,
f_piece: &dyn Fn(Profession, Self::RelativeSide) -> U
) -> U
👎Deprecated: Use
piece.match_on_piece_and_apply(f_tam, f_piece)
sourcefn match_on_relative_piece_and_apply<U>(
piece: Self::RelativePiece,
f_tam: &dyn Fn() -> U,
f_piece: &dyn Fn(Color, Profession, Self::RelativeSide) -> U
) -> U
fn match_on_relative_piece_and_apply<U>(
piece: Self::RelativePiece,
f_tam: &dyn Fn() -> U,
f_piece: &dyn Fn(Color, Profession, Self::RelativeSide) -> U
) -> U
👎Deprecated: Use
piece.match_on_piece_and_apply(f_tam, f_piece)
sourcefn match_on_absolute_piece_and_apply<U>(
piece: Self::AbsolutePiece,
f_tam: &dyn Fn() -> U,
f_piece: &dyn Fn(Color, Profession, AbsoluteSide) -> U
) -> U
fn match_on_absolute_piece_and_apply<U>(
piece: Self::AbsolutePiece,
f_tam: &dyn Fn() -> U,
f_piece: &dyn Fn(Color, Profession, AbsoluteSide) -> U
) -> U
👎Deprecated: Use
piece.match_on_piece_and_apply(f_tam, f_piece)
sourcefn empty_squares_relative(
board: &Self::RelativeBoard
) -> Vec<Self::RelativeCoord>
fn empty_squares_relative(
board: &Self::RelativeBoard
) -> Vec<Self::RelativeCoord>
👎Deprecated: Use
board.empty_squares().collect::<Vec<_>>()
sourcefn empty_squares_absolute(
board: &Self::AbsoluteBoard
) -> Vec<Self::AbsoluteCoord>
fn empty_squares_absolute(
board: &Self::AbsoluteBoard
) -> Vec<Self::AbsoluteCoord>
👎Deprecated: Use
board.empty_squares().collect::<Vec<_>>()
sourcefn hop1zuo1_of(
side: AbsoluteSide,
field: &Self::AbsoluteField
) -> Vec<ColorAndProf>
fn hop1zuo1_of(
side: AbsoluteSide,
field: &Self::AbsoluteField
) -> Vec<ColorAndProf>
👎Deprecated: Use
field.hop1zuo1_of(side).collect::<Vec<_>>()
sourcefn has_prof_absolute(piece: Self::AbsolutePiece, prof: Profession) -> bool
fn has_prof_absolute(piece: Self::AbsolutePiece, prof: Profession) -> bool
👎Deprecated: Use
piece.has_prof(prof)