diff --git a/include/hanabi_types.hpp b/include/hanabi_types.hpp index 8fa10d3..da91613 100644 --- a/include/hanabi_types.hpp +++ b/include/hanabi_types.hpp @@ -102,6 +102,8 @@ namespace Hanabi std::ostream & operator<<(std::ostream & os, const Action & action); + std::ostream & operator<<(std::ostream & os, const ActionType & action_type); + namespace Cards { diff --git a/src/hanabi_types.cpp b/src/hanabi_types.cpp index 5eda863..3a8aa4c 100644 --- a/src/hanabi_types.cpp +++ b/src/hanabi_types.cpp @@ -21,6 +21,35 @@ namespace Hanabi return os; } + std::ostream & operator<<(std::ostream & os, ActionType const & action_type) + { + switch (action_type) + { + case ActionType::play: + os << "play"; + break; + case ActionType::discard: + os << "discard"; + break; + case ActionType::color_clue: + os << "clue color"; + break; + case ActionType::rank_clue: + os << "clue rank"; + break; + case ActionType::end_game: + os << "end game"; + break; + case ActionType::vote_terminate_players: + os << "vote termination"; + break; + case ActionType::vote_terminate: + os << "terminate game"; + break; + } + return os; + } + std::string to_string(const Hanabi::Card & card) {