fix json representation of enum values

This commit is contained in:
Evgeny Zinoviev 2021-05-07 03:37:53 +03:00
parent 8029b8113b
commit cb499d4f01

View File

@ -82,9 +82,29 @@ public:
inline json toJSON() const { inline json toJSON() const {
json j; json j;
std::visit([&j](const auto& elem) { bool isEnum =
j = elem; std::holds_alternative<p18::BatteryType>(v_) ||
std::holds_alternative<p18::BatteryPowerDirection>(v_) ||
std::holds_alternative<p18::ChargerSourcePriority>(v_) ||
std::holds_alternative<p18::DC_AC_PowerDirection>(v_) ||
std::holds_alternative<p18::InputVoltageRange>(v_) ||
std::holds_alternative<p18::LinePowerDirection>(v_) ||
std::holds_alternative<p18::MachineType>(v_) ||
std::holds_alternative<p18::MPPTChargerStatus>(v_) ||
std::holds_alternative<p18::Topology>(v_) ||
std::holds_alternative<p18::OutputSourcePriority>(v_) ||
std::holds_alternative<p18::OutputModelSetting>(v_) ||
std::holds_alternative<p18::ParallelConnectionStatus>(v_) ||
std::holds_alternative<p18::SolarPowerPriority>(v_) ||
std::holds_alternative<p18::WorkingMode>(v_);
std::visit([&j, &isEnum](const auto& elem) {
if (isEnum)
j = formatter::to_str(elem);
else
j = elem;
}, v_); }, v_);
return j; return j;
} }
}; };