#ifndef DIRECTION_H_AB66A90E #define DIRECTION_H_AB66A90E #include #include enum class Direction { up, up_right, right, down_right, down, down_left, left, up_left }; inline Direction directionFromString(std::string_view str) { if (str == "up") return Direction::up; if (str == "up_right") return Direction::up_right; if (str == "right") return Direction::right; if (str == "down_right") return Direction::down_right; if (str == "down") return Direction::down; if (str == "down_left") return Direction::down_left; if (str == "left") return Direction::left; if (str == "up_left") return Direction::up_left; throw std::invalid_argument("Invalid direction: " + std::string(str)); } #endif /* end of include guard: DIRECTION_H_AB66A90E */