#include #pragma GCC diagnostic push #ifndef __clang__ #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #endif #include #pragma GCC diagnostic pop llmr::Value llmr::parseValue(pbf data) { while (data.next()) { switch (data.tag) { case 1: // string_value return data.string(); case 2: // float_value return static_cast(data.float32()); case 3: // double_value return data.float64(); case 4: // int_value return data.varint(); case 5: // uint_value return data.varint(); case 6: // sint_value return data.svarint(); case 7: // bool_value return data.boolean(); default: data.skip(); break; } } return false; } std::string llmr::toString(const llmr::Value& value) { if (value.is()) return value.get(); else if (value.is()) return value.get() ? "true" : "false"; else if (value.is()) return std::to_string(value.get()); else if (value.is()) return std::to_string(value.get()); else if (value.is()) return boost::lexical_cast(value.get()); else return "null"; }