diff --git a/include/billy_objects.hpp b/include/billy_objects.hpp index 46152e9..d03879a 100644 --- a/include/billy_objects.hpp +++ b/include/billy_objects.hpp @@ -49,6 +49,8 @@ namespace character { static std::string_view billy_object_to_string(const billyObjects &object) noexcept; + static std::string_view billy_object_to_string(const billyEnums &object) noexcept; + static void to_json(json &j, const container &billy); static void from_json(const json &j, container &billy); diff --git a/src/billy_objects.cpp b/src/billy_objects.cpp index 52cf96d..7fd747c 100644 --- a/src/billy_objects.cpp +++ b/src/billy_objects.cpp @@ -113,6 +113,15 @@ namespace character { return object->to_string(); } + std::string_view BillyObjects::billy_object_to_string(const billyEnums &object) noexcept { + return std::visit(overloaded{ + [](const weapons &obj) { return Weapons{ obj }.to_string(); }, + [](const equipments &obj) { return Equipments{ obj }.to_string(); }, + [](const tools &obj) { return Tools{ obj }.to_string(); }, + }, + object); + } + void BillyObjects::from_json(const json &j, container &billy) { for (const auto &element: j) { const std::uint32_t key = element[0].get();