sokoban_elements/piece/
board_pieces.rs1use super::{BoxID, GoalID, PusherID};
2use crate::PlusID;
3
4#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
6#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
7pub struct Pusher {
8 pub id: PusherID,
9 pub x: usize,
10 pub y: usize,
11}
12
13#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
17#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
18pub struct Boxbox {
19 pub id: BoxID,
20 pub x: usize,
21 pub y: usize,
22 pub plus_id: Option<PlusID>,
23}
24
25#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
27#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
28pub struct Goal {
29 pub id: GoalID,
30 pub x: usize,
31 pub y: usize,
32 pub plus_id: Option<PlusID>,
33}