Files
ArduinoJson/JsonGenerator/IndentedPrint.cpp

45 lines
685 B
C++
Raw Permalink Normal View History

#include "IndentedPrint.h"
using namespace ArduinoJson::Generator;
void IndentedPrint::indent()
{
2014-08-26 11:58:33 +02:00
if (level < MAX_LEVEL)
2014-08-26 09:53:32 +02:00
level++;
}
void IndentedPrint::unindent()
{
2014-08-26 11:58:33 +02:00
if (level > 0)
2014-08-26 09:53:32 +02:00
level--;
}
2014-08-26 11:58:33 +02:00
void IndentedPrint::setTabSize(uint8_t n)
{
if (n < MAX_TAB_SIZE)
tabSize = n;
}
size_t IndentedPrint::write(uint8_t c)
{
size_t n = 0;
if (isNewLine)
2014-08-26 09:53:32 +02:00
n += writeTabs();
n += sink.write(c);
isNewLine = c == '\n';
2014-08-26 11:58:33 +02:00
return n;
}
2014-08-26 12:11:17 +02:00
inline size_t IndentedPrint::writeTabs()
{
size_t n = 0;
2014-08-26 11:58:33 +02:00
for (int i = 0; i < level*tabSize; i++)
n += sink.write(' ');
return n;
}