@@ -3,7 +3,7 @@ use std::collections::HashMap;
33use std:: fmt;
44use std:: ops:: Add ;
55
6- #[ derive( Debug , Clone , Copy , Eq , PartialEq ) ]
6+ #[ derive( Debug , Clone , Copy , Eq , PartialEq , Hash ) ]
77pub struct Point {
88 pub x : i32 ,
99 pub y : i32 ,
@@ -50,7 +50,7 @@ pub enum Direction {
5050 Horizontal ,
5151}
5252
53- #[ derive( Debug , Clone ) ]
53+ #[ derive( Debug , Clone , Eq , PartialEq ) ]
5454pub struct Map ( Vec < Point > ) ;
5555
5656impl Map {
@@ -113,7 +113,7 @@ impl Map {
113113 }
114114}
115115
116- #[ derive( Debug , Clone ) ]
116+ #[ derive( Debug , Clone , Eq , PartialEq ) ]
117117pub enum BoosterType {
118118 NewHand ,
119119 FastMove ,
@@ -123,7 +123,7 @@ pub enum BoosterType {
123123 Unknown ,
124124}
125125
126- #[ derive( Debug , Clone ) ]
126+ #[ derive( Debug , Clone , Eq , PartialEq ) ]
127127pub struct Booster {
128128 pub kind : BoosterType ,
129129 pub point : Point ,
@@ -135,7 +135,7 @@ impl Booster {
135135 }
136136}
137137
138- #[ derive( Debug , Clone ) ]
138+ #[ derive( Debug , Clone , Eq , PartialEq ) ]
139139pub struct Task {
140140 pub width : usize ,
141141 pub height : usize ,
@@ -145,7 +145,7 @@ pub struct Task {
145145 pub boosters : Vec < Booster > ,
146146}
147147
148- #[ derive( Debug , Clone ) ]
148+ #[ derive( Debug , Clone , Eq , PartialEq ) ]
149149pub enum Move {
150150 MoveUp ,
151151 MoveDown ,
@@ -154,7 +154,7 @@ pub enum Move {
154154 Noop ,
155155}
156156
157- #[ derive( Debug , Clone ) ]
157+ #[ derive( Debug , Clone , Eq , PartialEq ) ]
158158pub enum Command {
159159 Move ( Move ) ,
160160 TurnRight ,
0 commit comments