IndentedPrint.cpp 566 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "IndentedPrint.h"
  2. using namespace ArduinoJson::Generator;
  3. void IndentedPrint::indent()
  4. {
  5. if (level<127)
  6. level++;
  7. }
  8. void IndentedPrint::unindent()
  9. {
  10. if (level>0)
  11. level--;
  12. }
  13. size_t IndentedPrint::write(uint8_t c)
  14. {
  15. size_t n = 0;
  16. if (isNewLine)
  17. n += writeTabs();
  18. n += sink.write(c);
  19. isNewLine = c == '\n';
  20. return n;
  21. }
  22. size_t IndentedPrint::writeTabs()
  23. {
  24. size_t n = 0;
  25. for (int i = 0; i<level; i++)
  26. n += sink.write(' ');
  27. return n;
  28. }