forked from bblanchon/ArduinoJson
46 lines
653 B
C++
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;
|
|
}
|