Files
ArduinoJson/JsonGenerator/IndentedPrint.cpp
2014-09-28 13:36:41 +02:00

46 lines
653 B
C++

#include "IndentedPrint.h"
using namespace ArduinoJson::Generator;
void IndentedPrint::indent()
{
if (_level < MAX_LEVEL)
_level++;
}
void IndentedPrint::unindent()
{
if (_level > 0)
_level--;
}
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)
n += writeTabs();
n += _sink.write(c);
_isNewLine = c == '\n';
return n;
}
inline size_t IndentedPrint::writeTabs()
{
size_t n = 0;
for (int i = 0; i < _level*_tabSize; i++)
n += _sink.write(' ');
return n;
}