mirror of
https://github.com/eledio-devices/thirdparty-ArduinoJson.git
synced 2025-11-01 08:48:30 +01:00
65 lines
1.0 KiB
C++
65 lines
1.0 KiB
C++
// Copyright Benoit Blanchon 2014
|
|
// MIT License
|
|
//
|
|
// Arduino JSON library
|
|
// https://github.com/bblanchon/ArduinoJson
|
|
|
|
#pragma once
|
|
|
|
#include "JsonWriter.hpp"
|
|
#include "IndentedPrint.hpp"
|
|
|
|
namespace ArduinoJson {
|
|
namespace Internals {
|
|
|
|
// An indented version of JsonWriter.
|
|
class PrettyJsonWriter : public JsonWriter {
|
|
public:
|
|
explicit PrettyJsonWriter(IndentedPrint &sink)
|
|
: JsonWriter(sink), _indenter(sink) {}
|
|
|
|
void beginArray() {
|
|
JsonWriter::beginArray();
|
|
indent();
|
|
}
|
|
|
|
void endArray() {
|
|
unindent();
|
|
JsonWriter::endArray();
|
|
}
|
|
|
|
void writeColon() { write(": "); }
|
|
|
|
void writeComma() {
|
|
JsonWriter::writeComma();
|
|
newline();
|
|
}
|
|
|
|
void beginObject() {
|
|
JsonWriter::beginObject();
|
|
indent();
|
|
}
|
|
|
|
void endObject() {
|
|
unindent();
|
|
JsonWriter::endObject();
|
|
}
|
|
|
|
private:
|
|
void indent() {
|
|
_indenter.indent();
|
|
newline();
|
|
}
|
|
|
|
void unindent() {
|
|
newline();
|
|
_indenter.unindent();
|
|
}
|
|
|
|
void newline() { _length += _indenter.println(); }
|
|
|
|
IndentedPrint &_indenter;
|
|
};
|
|
}
|
|
}
|