Browse Source

Util: Optimize Value member away

master
Riyyi 2 years ago
parent
commit
93eb2f4f6a
  1. 9
      src/util/json/serializer.cpp
  2. 6
      src/util/json/serializer.h
  3. 4
      src/util/json/value.cpp

9
src/util/json/serializer.cpp

@ -16,9 +16,8 @@
namespace Json { namespace Json {
Serializer::Serializer(const Value& value, const uint32_t indent, const char indentCharacter) Serializer::Serializer(const uint32_t indent, const char indentCharacter)
: m_value(value) : m_indent(indent)
, m_indent(indent)
, m_indentCharacter(indentCharacter) , m_indentCharacter(indentCharacter)
{ {
} }
@ -29,9 +28,9 @@ Serializer::~Serializer()
// ------------------------------------------ // ------------------------------------------
std::string Serializer::dump() std::string Serializer::dump(const Value& value)
{ {
return dumpHelper(m_value); return dumpHelper(value);
} }
// ------------------------------------------ // ------------------------------------------

6
src/util/json/serializer.h

@ -16,18 +16,16 @@ namespace Json {
class Serializer { class Serializer {
public: public:
Serializer(const Value& value, const uint32_t indent = 0, const char indentCharacter = ' '); Serializer(const uint32_t indent = 0, const char indentCharacter = ' ');
virtual ~Serializer(); virtual ~Serializer();
std::string dump(); std::string dump(const Value& value);
private: private:
std::string dumpHelper(const Value& value, const uint32_t indentLevel = 0); std::string dumpHelper(const Value& value, const uint32_t indentLevel = 0);
std::string dumpArray(const Value& value, const uint32_t indentLevel = 0); std::string dumpArray(const Value& value, const uint32_t indentLevel = 0);
std::string dumpObject(const Value& value, const uint32_t indentLevel = 0); std::string dumpObject(const Value& value, const uint32_t indentLevel = 0);
Value m_value;
uint32_t m_indent { 0 }; uint32_t m_indent { 0 };
char m_indentCharacter { ' ' }; char m_indentCharacter { ' ' };
}; };

4
src/util/json/value.cpp

@ -159,8 +159,8 @@ Value Value::parse(const std::string& input)
std::string Value::dump(const uint32_t indent, const char indentCharacter) const std::string Value::dump(const uint32_t indent, const char indentCharacter) const
{ {
Serializer serializer(*this, indent, indentCharacter); Serializer serializer(indent, indentCharacter);
return serializer.dump(); return serializer.dump(*this);
} }
void Value::emplace_back(Value value) void Value::emplace_back(Value value)

Loading…
Cancel
Save