1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
#[derive(Debug, Clone, Copy)] pub enum Direction { North, East, South, West, Still, } impl Direction { pub fn opposite(&self) -> Direction { match self { Direction::North => Direction::South, Direction::East => Direction::West, Direction::South => Direction::North, Direction::West => Direction::East, Direction::Still => Direction::Still, } } pub fn all() -> Vec<Direction> { Direction::all4() } pub fn all4() -> Vec<Direction> { vec![ Direction::North, Direction::East, Direction::South, Direction::West, ] } pub fn all5() -> Vec<Direction> { vec![ Direction::North, Direction::East, Direction::South, Direction::West, Direction::Still, ] } }