26 #ifndef RAPIDJSON_PRETTYWRITER_H_
27 #define RAPIDJSON_PRETTYWRITER_H_
39 template<
typename Stream,
typename Encoding = UTF8<>,
typename Allocator = MemoryPoolAllocator<> >
59 RAPIDJSON_ASSERT(indentChar ==
' ' || indentChar ==
'\t' || indentChar ==
'\n' || indentChar ==
'\r');
94 bool empty =
Base::level_stack_.template Pop<typename Base::Level>(1)->valueCount == 0;
115 bool empty =
Base::level_stack_.template Pop<typename Base::Level>(1)->valueCount == 0;
Concept for allocating, resizing and freeing memory block.
Writer with indentation and spacing.
Definition: prettywriter.h:40
PrettyWriter & SetIndent(Ch indentChar, unsigned indentCharCount)
Set custom indentation.
Definition: prettywriter.h:58
PrettyWriter & Null_()
Definition: prettywriter.h:68
Writer< Stream, Encoding, Allocator > Base
Definition: prettywriter.h:42
PrettyWriter & EndObject(SizeType memberCount=0)
Definition: prettywriter.h:90
PrettyWriter & StartObject()
Definition: prettywriter.h:83
PrettyWriter & Uint64(uint64_t u64)
Definition: prettywriter.h:73
void WriteIndent()
Definition: prettywriter.h:170
PrettyWriter & Int(int i)
Definition: prettywriter.h:70
PrettyWriter & String(const Ch *str, SizeType length, bool copy=false)
Definition: prettywriter.h:76
unsigned indentCharCount_
Definition: prettywriter.h:176
Base::Ch Ch
Definition: prettywriter.h:43
PrettyWriter & String(const Ch *str)
Simpler but slower overload.
Definition: prettywriter.h:128
PrettyWriter(Stream &stream, int precision=20, Allocator *allocator=0, size_t levelDepth=Base::kDefaultLevelDepth)
Constructor.
Definition: prettywriter.h:50
PrettyWriter & Int64(int64_t i64)
Definition: prettywriter.h:72
Ch indentChar_
Definition: prettywriter.h:175
PrettyWriter & EndArray(SizeType memberCount=0)
Definition: prettywriter.h:111
PrettyWriter & Bool_(bool b)
Definition: prettywriter.h:69
PrettyWriter & Double(double d)
Definition: prettywriter.h:74
PrettyWriter & StartArray()
Definition: prettywriter.h:104
PrettyWriter & Uint(unsigned u)
Definition: prettywriter.h:71
void PrettyPrefix(Type type)
Definition: prettywriter.h:131
Concept for reading and writing characters.
JSON writer.
Definition: writer.h:58
void WriteStartArray()
Definition: writer.h:320
void WriteString(const Ch *str, SizeType length)
Definition: writer.h:285
static const size_t kDefaultLevelDepth
Definition: writer.h:145
void WriteDouble(double d)
Definition: writer.h:237
void WriteUint(unsigned u)
Definition: writer.h:168
void WriteInt64(int64_t i64)
Definition: writer.h:182
void WriteStartObject()
Definition: writer.h:318
Encoding::Ch Ch
Definition: writer.h:60
void WriteBool_(bool b)
Definition: writer.h:151
void WriteUint64(uint64_t u64)
Definition: writer.h:190
internal::Stack< Allocator > level_stack_
Definition: writer.h:342
Stream & stream_
Definition: writer.h:341
void WriteNull_()
Definition: writer.h:147
void WriteEndObject()
Definition: writer.h:319
void WriteInt(int i)
Definition: writer.h:160
void WriteEndArray()
Definition: writer.h:321
const std::complex< Mdouble > i
Definition: ExtendedMath.h:51
SizeType StrLen(const Ch *s)
Custom strlen() which works on different character types.
Definition: strfunc.h:39
Definition: document.h:38
unsigned SizeType
Use 32-bit array/string indices even for 64-bit platform, instead of using size_t.
Definition: rapidjson.h:92
void PutN(GenericWriteStream &stream, char c, size_t n)
Definition: genericstream.h:113
Type
Type of JSON value.
Definition: rapidjson.h:538
@ kArrayType
array
Definition: rapidjson.h:543
@ kNull_Type
null
Definition: rapidjson.h:539
@ kTrueType
true
Definition: rapidjson.h:541
@ kFalseType
false
Definition: rapidjson.h:540
@ kNumberType
number
Definition: rapidjson.h:545
@ kObjectType
object
Definition: rapidjson.h:542
@ kStringType
string
Definition: rapidjson.h:544
#define RAPIDJSON_ASSERT(x)
Assertion.
Definition: rapidjson.h:105
Information for each nested level.
Definition: writer.h:139
size_t valueCount
number of values in this level
Definition: writer.h:142
bool inArray
true if in array, otherwise in object
Definition: writer.h:141