From cb499d4f015d4a9cd252133a3b3f6a52de333255 Mon Sep 17 00:00:00 2001 From: Evgeny Zinoviev Date: Fri, 7 May 2021 03:37:53 +0300 Subject: fix json representation of enum values --- src/p18/response.h | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/p18/response.h b/src/p18/response.h index f9585d3..9dfebb1 100644 --- a/src/p18/response.h +++ b/src/p18/response.h @@ -82,9 +82,29 @@ public: inline json toJSON() const { json j; - std::visit([&j](const auto& elem) { - j = elem; + bool isEnum = + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_) || + std::holds_alternative(v_); + + std::visit([&j, &isEnum](const auto& elem) { + if (isEnum) + j = formatter::to_str(elem); + else + j = elem; }, v_); + return j; } }; -- cgit v1.2.3