template <typename DerivedT>

class JsonWriter

Defined at line 29 of file ../../tools/fidl/fidlc/src/json_writer.h

|JsonWriter| requires the derived type as a template parameter so it can

match methods declared with parameter overrides in the derived class.

Public Members

DerivedT & self

Public Methods

void JsonWriter<DerivedT> (std::ostream & os, int indent_level)

Defined at line 31 of file ../../tools/fidl/fidlc/src/json_writer.h

void ~JsonWriter<DerivedT> ()

Defined at line 34 of file ../../tools/fidl/fidlc/src/json_writer.h

template <typename Iterator>
void GenerateArray (Iterator begin, Iterator end)

Defined at line 37 of file ../../tools/fidl/fidlc/src/json_writer.h

template <typename Collection>
void GenerateArray (const Collection & collection)

Defined at line 60 of file ../../tools/fidl/fidlc/src/json_writer.h

template <typename T>
void Generate (const T * value)

Note that this overload will take precedence over Generate(const Base*)

when given a Derived* argument. To avoid that, you must either static_cast

to Base* or implement Generate(const Base

&

).

Defined at line 68 of file ../../tools/fidl/fidlc/src/json_writer.h

template <typename T>
void Generate (const std::unique_ptr<T> & value)

Defined at line 73 of file ../../tools/fidl/fidlc/src/json_writer.h

template <typename T>
void Generate (const std::shared_ptr<T> & value)

Defined at line 78 of file ../../tools/fidl/fidlc/src/json_writer.h

template <typename T>
void Generate (const std::vector<T> & value)

Defined at line 83 of file ../../tools/fidl/fidlc/src/json_writer.h

template <typename T>
void Generate (const std::set<T> & value)

Defined at line 88 of file ../../tools/fidl/fidlc/src/json_writer.h

void Generate (bool value)

Defined at line 92 of file ../../tools/fidl/fidlc/src/json_writer.h

void Generate (std::string_view value)

Defined at line 94 of file ../../tools/fidl/fidlc/src/json_writer.h

void Generate (std::string value)

Defined at line 96 of file ../../tools/fidl/fidlc/src/json_writer.h

void Generate (uint32_t value)

Defined at line 98 of file ../../tools/fidl/fidlc/src/json_writer.h

void Generate (int64_t value)

Defined at line 99 of file ../../tools/fidl/fidlc/src/json_writer.h

void Generate (uint64_t value)

Defined at line 100 of file ../../tools/fidl/fidlc/src/json_writer.h

void ResetIndentLevel ()

Defined at line 102 of file ../../tools/fidl/fidlc/src/json_writer.h

void Indent ()

Defined at line 104 of file ../../tools/fidl/fidlc/src/json_writer.h

void Outdent ()

Defined at line 106 of file ../../tools/fidl/fidlc/src/json_writer.h

Protected Methods

void GenerateEOF ()

Defined at line 131 of file ../../tools/fidl/fidlc/src/json_writer.h

void GenerateObjectPunctuation (Position position)

Defined at line 133 of file ../../tools/fidl/fidlc/src/json_writer.h

void GenerateObject (fit::closure callback)

Defined at line 145 of file ../../tools/fidl/fidlc/src/json_writer.h

template <typename Type>
void GenerateObjectMember (std::string_view key, const Type & value, Position position)

Defined at line 161 of file ../../tools/fidl/fidlc/src/json_writer.h

void EmitBoolean (bool value, ConstantStyle style)

Defined at line 168 of file ../../tools/fidl/fidlc/src/json_writer.h

void EmitString (std::string_view value)

Defined at line 182 of file ../../tools/fidl/fidlc/src/json_writer.h

void EmitLiteral (std::string_view value)

Emits a string literal given its raw FIDL source.

Defined at line 220 of file ../../tools/fidl/fidlc/src/json_writer.h

template <typename T>
void EmitNumeric (T value, ConstantStyle style)

Defined at line 261 of file ../../tools/fidl/fidlc/src/json_writer.h

void EmitNewline ()

Defined at line 277 of file ../../tools/fidl/fidlc/src/json_writer.h

void EmitNewlineWithIndent ()

Defined at line 279 of file ../../tools/fidl/fidlc/src/json_writer.h

void EmitObjectBegin ()

Defined at line 286 of file ../../tools/fidl/fidlc/src/json_writer.h

void EmitObjectSeparator ()

Defined at line 288 of file ../../tools/fidl/fidlc/src/json_writer.h

void EmitObjectEnd ()

Defined at line 293 of file ../../tools/fidl/fidlc/src/json_writer.h

void EmitObjectKey (std::string_view key)

Defined at line 295 of file ../../tools/fidl/fidlc/src/json_writer.h

void EmitArrayBegin ()

Defined at line 300 of file ../../tools/fidl/fidlc/src/json_writer.h

void EmitArraySeparator ()

Defined at line 302 of file ../../tools/fidl/fidlc/src/json_writer.h

void EmitArrayEnd ()

Defined at line 307 of file ../../tools/fidl/fidlc/src/json_writer.h

Enumerations

enum Position
Name Value
kFirst 0
kSubsequent 0

Defined at line 118 of file ../../tools/fidl/fidlc/src/json_writer.h

enum ConstantStyle
Name Value
kAsConstant 0
kAsString 0

ConstantStyle indicates whether the constant value to be emitted should be

directly placed in the JSON output, or whether is must be wrapped in a

string.

Defined at line 126 of file ../../tools/fidl/fidlc/src/json_writer.h