simpleOutput.hh 686 B

12345678910111213141516171819202122232425262728
  1. #pragma once
  2. #include <iostream>
  3. class JSonElement;
  4. class Params;
  5. class SimpleOutput
  6. {
  7. public:
  8. static void display(std::ostream &out, const JSonElement *root, const Params &params);
  9. private:
  10. SimpleOutput(std::ostream &output, const Params &p);
  11. std::string getIndent() const;
  12. inline void writeObjectEntry(const JSonObjectEntry *, bool);
  13. inline void writePrimitive(const AJSonPrimitive *, bool);
  14. inline void writeContainer(const JSonContainer *, bool);
  15. inline void write(const JSonElement *, bool prependComma);
  16. private:
  17. std::ostream &out;
  18. const Params &params;
  19. unsigned short indent;
  20. };